我试图查询我的sqlite3数据库并使用列表中的值.这是我的代码:
for i in range(len(infolist)):
result = cursor.execute('SELECT COUNT(DISTINCT col1)
FROM tablename
WHERE col2 = ?', (infolist[i]))
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
ProgrammingError:'提供的绑定数不正确.当前语句使用1,并且有22个提供.
该字符串有22个字符,这解释了为什么有22个绑定.显然,我没有正确地将字符串传递给SQL语句.
cursor.execute 的第二个参数是一个序列,并且您已向它传递了一个字符串(这是一个字符序列)。如果您尝试执行 1 元素元组,则需要一个逗号。('item',)即代替('item')
另外,您应该迭代这些项目,而不是使用 range 和 i:
for info in infolist:
result = cursor.execute('SELECT COUNT(DISTINCT col1)
FROM tablename
WHERE col2 = ?', (info,))
Run Code Online (Sandbox Code Playgroud)