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)

最新更新