テーブル 'my_table'から列 'item'と 'feature'を選択する次のSQLクエリがあります。列 'item'と 'other_feature'の値のペアが一致します。WHERE句の "VALUES"を含むsqlite selectクエリは、sqliteでは正しく返されますが、python sqlite3では正しく返されません。
select item, feature from my_table
where (item, other_feature) in (VALUES ('item1', 'A'), ('item1', 'B'));
Here is an example of the dataset used.
sqlite3のコマンドラインインターフェースで期待どおりにこのクエリは動作します。しかし、同じデータベースを使用して、sqlite3
モジュールをPythonで次のコードを使用するとエラーが発生します。 Pythonのsqlite3のモジュールで期待通りになぜこのクエリは機能していない
sqlite3.OperationalError: near ",": syntax error
:
import sqlite3
query = "select item, feature from my_table where (item, other_feature) in (VALUES ('item1', 'A'), ('item1', 'B'))"
conn = sqlite3.connect("data/my_database.db")
conn.execute(query)
は、私は次のエラーを取得しますか? "
であなたの文字列を引用
'' 'で引用するときに同じエラーが発生します。 – tmoisan
実際に' sqlite3.sqlite_version'バージョン3.13.0でこの問題が発生し、3.16.2で問題なく動作します。 – tmoisan