【问题标题】:Trouble with IN statment in SQLSQL中IN语句的问题
【发布时间】:2015-02-25 16:51:42
【问题描述】:

我在 python 中有代码:

base = db.connect(host='localhost', user='root', passwd='pass', db='employee')
cursor = base.cursor()
name_query = "SELECT * FROM `employee` WHERE `employeeID` IN %s LIMIT %s"
cursor.execute(name_query, ([9006,123],1))

列表中有多个值是很好的工作,但如果列表中只有一个值,则会引发错误。有什么办法可以解决这个问题

【问题讨论】:

标签: python mysql


【解决方案1】:

我认为这可能与额外的“逗号”有关:

select * from table where f1 in ('a',) limit 1; or
select * from table where f1 in ('a','b',) limit 1;

如果我在任何一种情况下删除最后一个逗号(无论限制值如何),它都可以工作......至少在 mysql 中。

【讨论】:

    【解决方案2】:

    我不确定我是否完全理解了这个问题。但我认为当只有一个值时你可以这样使用:

    cursor.execute(name_query, ([9006,],1))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-23
      • 1970-01-01
      • 2010-09-25
      • 1970-01-01
      • 2014-12-31
      • 1970-01-01
      • 2011-09-12
      相关资源
      最近更新 更多