2014-12-29 206 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中。