0

只需尝试构建一个 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

1 回答 1

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

最后一个参数需要是一个具有一个元素的元组,并且要创建其中一个,您也需要在其中有一个逗号。

于 2013-05-08T07:40:47.040 回答