2014-12-29 184 views
0

IN statment我在Python代码:麻烦与SQL

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

它在列表中有多个值,良好的工作,但如果只有一个值是在列表中,出现错误。有没有办法处理这个问题

+0

你可以随着条件去吧!!!!!!!!! ....如果你有一个值去一个查询别的去跟另一个查询 –

+0

请参阅http://stackoverflow.com/questions/11195993 /如何到字符串格式-SQL中的子句与 - 蟒蛇。 – alecxe

回答

0

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

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

我认为这可能与有像这样的额外的“逗号”:如果我删除最后

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

逗号在任何一种情况下(不管限制值)它都可以工作......至少在mysql中。