Reputation: 11933
Simply trying to build a sql query to execute from python. Getting SQL syntax error.
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)")
However note that when I execute the following (it works perfectly fine):
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'")
Upvotes: 0
Views: 178
Reputation: 1121366
You need to make elem
a separate parameter, not part of the query string:
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,))
That last parameter needs to be a tuple with one element, and to create one of those you need to have that one comma there too.
Upvotes: 4