0

値 (単語) のリストがあり、テーブルの列にリストの値 (任意の値) が含まれているかどうかを確認したいと考えています。

私のリストは非常に長くなる可能性があるため、for ループを使用して作成したいと考えています。次に例を示します。

words = ( 'one', 'two', 'three' )
whereClause=""
a=""
for word in words:
   temp=" item LIKE '%" +word +  " %' or"
   whereClause=whereClause+temp
whereClause = whereClause[17:]  #delete first "item LIKE"
whereClause = whereClause[:-3] #delete last "or"

今、私はそれを私のSQLクエリに入れたいです:

sql= """select name
from table
where item LIKE ? """

cursor.execute(sql, whereClause)
rows=cursor.fetchall()

うまくいきません、何か提案はありますか?

SQLクエリを使用して列「名前」のすべての値を取得し、 Pythonを使用してリストの値が存在するかどうかを確認する方がよいと思いますか? ありがとう!

4

2 に答える 2

0

問題が解決しない場合:

words = ( 'one', 'two', 'three' )
whereClause=""

i = 1
for word in words:
    if i == 1:
        whereClause = " item LIKE '%" +word + "%'"
    else:
        whereClause += " OR item LIKE '%" +word + "%'"
    i += 1

sql= """select name
from table
where {0} """.format(whereClause)

cursor.execute(sql)
rows=cursor.fetchall()
于 2016-05-08T13:27:38.890 に答える