我试图弄清楚如何通过SQL中的where语句将列表作为参数传递,我无法编写所需的内容,但是下面是所需的内容。
这就是我要做的一个参数...。
x = 1
sql = """Select t1,t2,t3,t4 from database where t1= ? """
cur.execute(sql,x)
我需要的例子
X = [1,2,3,4]
Select t1,t2,t3,t4 from database where t1= 1
Select t1,t2,t3,t4 from database where t1= 2
Select t1,t2,t3,t4 from database where t1= 3
Select t1,t2,t3,t4 from database where t1= 4
我尝试的示例不起作用。...
X = [1,2,3,4]
sql = """Select Select t1,t2,t3,t4 from database where t1= ? """
example=[]
i = 0
for item in X:
while i < len(x)
row = cur.execute(sql,item)
i +=1
example.append(row)
答案 0 :(得分:0)
我认为应该
cursor.execute("""Select t1, t2, t3, t4 from database where t1 in ('1', '2', '3', '4')""")
答案 1 :(得分:0)
如果您要做的是循环遍历ID列表并将行添加到名为example
的列表中,则可以只构建动态IN
子句并一次检索所有行:
X = [1, 2, 3, 4]
qmarks = ','.join('?' * len(X)) # ?,?,?,?
sql = f"SELECT * FROM tablename WHERE t1 IN ({qmarks})" # SELECT * FROM tablename WHERE t1 IN (?,?,?,?)
example = crsr.execute(sql, X).fetchall()