2017-10-18 936 views
0

当我必须在语句中传递多个值时,我在Python中编写PostgreSQL select语句时遇到问题。以下是示例示例。如何在PostgreSQL select语句中将数组赋值为变量?

from sqlalchemy import create_engine 

values = [ 'a' , 'b' ] 

con = create_engine(conn_string) 

results = con.execute("select * from table where var in (%s)", [ values ]) 

我能够使用单个值运行查询,但获取数组的格式错误。

+0

在重复的情况下,你需要改变'?''到%s'因为Postgres使用不同的占位符,但原理是相同的。 – roganjosh

+0

如果您使用psycopg2作为您的DB-API驱动程序,您可以将它作为参数传递给一个元组,它将为IN运算符形成一个合适的表单:http://initd.org/psycopg/docs/usage。 HTML#元组适应。无需手动创建逗号分隔的占位符。 –

回答