2013-05-08 234 views
0

簡單地試圖構建一個sql查詢來從python執行。獲取SQL語法錯誤。簡單的Python SQL查詢

for elem in phraseList: 
    cursor.execute("SELECT PHRASE,COUNT(ID) FROM TEST.NERD WHERE LABEL LIKE '%PRT%' \ 
    AND ID IN (SELECT DISTINCT ID FROM TEST.NERD WHERE LABEL LIKE '%COND%' \ 
    AND PHRASE LIKE (%s)),(elem)") 

但是請注意,當我執行以下命令(其工作完全正常):

for elem in phraseList: 
    cursor.execute("SELECT PHRASE,COUNT(ID) FROM TEST.NERD WHERE LABEL LIKE '%PRT%' \ 
    AND ID IN (SELECT DISTINCT ID FROM TEST.NERD WHERE LABEL LIKE '%COND%' \ 
    AND PHRASE LIKE '%dmg'") 

回答

4

你需要讓elem一個單獨的參數,而不是查詢字符串的一部分:

cursor.execute("SELECT PHRASE,COUNT(ID) FROM TEST.NERD WHERE LABEL LIKE '%PRT%' \ 
    AND ID IN (SELECT DISTINCT ID FROM TEST.NERD WHERE LABEL LIKE '%COND%' \ 
    AND PHRASE LIKE %s", (elem,)) 

這最後一個參數需要與一個元素的元組,以及創建這些,你需要有一個逗號有太多的一個。

+0

感謝@Martijn的幫助。它確實有效。 +1。接受 – Yavar 2013-05-08 08:11:14

+0

我已經發布了另一個問題,我現在面臨這裏http://stackoverflow.com/questions/16435676/python-sql-valueerror。再次感謝您的幫助。 – Yavar 2013-05-08 08:11:41

+0

對不起,我沒有注意到'%PART%'等問題;應該已經意識到這可能是MySQLdb適配器。在那裏回答。 – 2013-05-08 08:34:34