SQL中IN语句的问题

时间:2014-12-29 13:35:32

标签: python mysql

我在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))

列表中有多个值可以很好地工作,但如果列表中只有一个值,则会引发错误。有没有办法处理这个

2 个答案:

答案 0 :(得分:0)

我不确定我是否完全理解了这个问题。但是我觉得只有一个值就可以这样使用:

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

答案 1 :(得分:0)

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

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

如果我在任一场景中删除最后一个逗号(无论极限值如何)都可以...至少在mysql中。