私はPython2.7をWindows 7で使用し、mysqlサーバはpymssqlで接続します。SQLクエリに文字列のリストを与える[Python]
私の問題:私は非常に大きなデータベースを持っていて、リストからいくつかの単語(文字列)に一致するオブジェクトのIDを選択したいのですが、私は自分のプログラムに与えます。 このクエリには、私のリストのこれらの単語についてもLIKE%...%の式が必要です。
今まで私のPython-Scriptをデータベースに接続し、カーソルを定義しました。 は、それから私は私が探しています、言葉で小さなリストを作り、私は後で私のクエリのためのいくつかのプレースホルダを作成しました:
query = """ SELECT BO_INDEX FROM GeoTest.dbo.Tabelle_Bohrung
WHERE BO_BEMERKUNG IN ({})""".format(placeholders)
私が探しています:
ここwortliste = ['Bruch', 'Verwerfung']
placeholders = ','.join(['%s'] * len(wortliste))
は私のクエリです単一の単語は、ここでの単語「ブルッフ」の例えば、私のクエリは次のようになります。
query = """ SELECT BO_INDEX FROM GeoTest.dbo.Tabelle_Bohrung
WHERE BO_BEMERKUNG LIKE '%Bruch%'"""
つの単語のためのこのクエリは、右イドの(= BO_INDEX)と一致します。 プレースホルダのクエリがクラッシュすることはありませんが、何も一致しませんでした:(
しかし、私はデータベースをいくつかの単語だけループして、リスト内のすべての単語(文字列) (= wortliste)と、新しいリストに追加します。
私は本当にdont'tこの問題を解決する方法を知っている!
私はこの課題を解決するために、すべての新しい方法のために感謝しています! ありがとう!
はい、これは正しいです! – Hardinger
しかし、私のクエリはまだ何も一致しません、私はLIKE '%...%' - 式を含める必要がありますが、私はこの例のための方法を知らない。 – Hardinger
作成するクエリを知っていますか?それを質問に追加できますか?たぶん、あなたはこれを使用したいと思います:http://stackoverflow.com/questions/12957993/how-to-use-sql-like-condition-with-multiple-values-in-postgresql – Bahrom