我找到了用于插入数据的 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)