【发布时间】:2015-07-12 11:44:37
【问题描述】:
目前我正在通过 python 运行 sql 查询以从数据库中提取信息。
我的代码是:
cities = ('London')
sql = 'SELECT * FROM Customers WHERE City IN ({});'
cur.execute(sql, cities)
我现在想添加一个额外的 IN 语句,这样我的 sql 查询将如下所示:
coun = ('uk')
cities = ('london')
sql = 'SELECT * FROM Customers WHERE City IN ({}) AND Country IN ({});'
cur.execute(sql, cities, coun)
此代码不起作用,因为我在执行命令中指定了两个变量列表,但我也想知道 SQL 是否不喜欢有两个 IN 语句?我试图单独测试它,但它不喜欢两个 IN 语句。
有没有办法让这个代码工作?我正在运行 python 2.7 和 sqlite3 模块。每个用户输入的城市和县列表可能会发生变化,因此我不能只将原始值放入 SQL 语句中。
【问题讨论】:
-
什么是
cur,您阅读过该类和execute方法的文档吗?你为什么在括号中声明你的字符串?('london') == 'london'如果要创建元组文字,需要使用逗号('london',) -
这不是 SQL 问题。多个 IN 语句没有问题。该问题必须与
cities和coun与相应参数标记的绑定有关。