在SQL语句中,通过%s使列表(countryList)可用的正确方法是什么?
# using psycopg2
countryList=['UK','France']
sql='SELECT * from countries WHERE country IN (%s)'
data=[countryList]
cur.execute(sql,data)
现在,它在尝试运行“WHERE country in(ARRAY[…])”后出错。除了字符串操作之外,还有其他方法可以做到这一点吗?
谢谢
Tags:
您可以直接使用python列表,如下所示。它的行为类似于SQL中的IN运算符,并且在不抛出任何错误的情况下处理空白列表。
资料来源: http://initd.org/psycopg/docs/usage.html#lists-adaptation
要稍微解释一下答案并处理命名参数,并将列表转换为元组,请执行以下操作:
对于
IN
运算符,需要tuple而不是list,并从SQL字符串中删除括号。在调试过程中,您可以检查是否使用
相关问题 更多 >
编程相关推荐