Python 将字符串列表绑定到IN子句

Python 将字符串列表绑定到IN子句,python,sqlite,list,binding,Python,Sqlite,List,Binding,可能重复: 考虑一下这个(在这里使用): 这不起作用,因为绑定参数不能是列表。我想将字符串列表绑定到?。我知道如何手动构建适当的查询字符串,但我想知道是否有一种方法可以通过绑定实现这一点。大约4年前我遇到过这个问题,然后我发现无法将列表绑定到sql(我使用的是mssql server和ODBC提供程序,但也考虑了直接sql调用) 在我的例子中,我只是手动构建查询,而且效率很高。如果您有一个很长的值列表,您必须创建另一个表,在运行时填充它,并在sql中加入它。使用Fabian的多问号思想,怎么样

可能重复:

考虑一下这个(在这里使用):


这不起作用,因为绑定参数不能是列表。我想将字符串列表绑定到
。我知道如何手动构建适当的查询字符串,但我想知道是否有一种方法可以通过绑定实现这一点。

大约4年前我遇到过这个问题,然后我发现无法将列表绑定到sql(我使用的是mssql server和ODBC提供程序,但也考虑了直接sql调用)

在我的例子中,我只是手动构建查询,而且效率很高。如果您有一个很长的值列表,您必须创建另一个表,在运行时填充它,并在sql中加入它。

使用Fabian的多问号思想,怎么样

c.execute("SELECT foo.y FROM foo WHERE foo.x in (%s)" % ', '.join('?' * len(s)), s)

你试过用元组而不是元组吗?也许会有帮助。@gimel:谢谢,我没看到那个@肯尼特:这会引起
太多的绑定
。您需要正确数量的绑定吗?在您的查询字符串中,与列表中的元素一样多。我应该在回答之前检查gimel的链接。答案是一样的。
c.execute("SELECT foo.y FROM foo WHERE foo.x in (%s)" % ', '.join('?' * len(s)), s)