python - python SQLite按值数组选择
问题描述
我发现了用于插入数据的 executemany 和其他一些方法。但是执行许多不适用于 SELECT。
在sql格式中,可以使用IN和VALUES,例如:
SELECT col1,col2 FROM Table1 WHERE col3 IN (VALUES (1),(2),(3) )
如何在 python 中使用数组执行此操作?
这是一次尝试,但存在绑定问题:
dataArr = (1,2,3)
c.execute( "SELECT col1,col2 FROM Table1 WHERE col3 IN (?) ",(dataArr,) )
ret = c.fetchall()
我也尝试过这个问题的字符串连接,但它将行扁平化为一个数组。好处是它的执行速度比我的循环快 2~3 倍,这是我主要关心的问题。
解决方案
试试这个:
args=['1','2','3']
sql="select col1,col2 FROM Table1 WHERE col3 IN in ({seq})".format(seq=','.join(['?']*len(args)))
rows=cur.execute(sql, args)
for row in rows:
print(row)
推荐阅读
- flutter - 第一次构建时从后端初始化我的列表
- python - matplotlib/seaborn 小提琴图与颜色图
- r - 如何将函数应用于向量中的每个连续 n 元素
- c++ - 如何在 C++ 中使用 gradle 添加仅标头依赖项
- java - 如何在 Spring Boot 中使用具有不同 Content-Type 的 SOAP 1.2
- nativescript - tns 构建给出致命错误:无效标记压缩接近堆限制分配失败 - JavaScript 堆内存不足
- terminology - noddy代码测试原理是什么
- angular - 为什么 request.ts 中的 serializeBody 方法在 case 字符串中不转换 JSON.stringify(this.body)?
- node.js - 如何使用此功能运行功能
- scala - 使用 foreach 进行 Spark 结构化流式处理