SQLite での "WHERE _ IN ___" ステートメントの処理
WHERE IN ステートメントを使用する場合、エラーを避けるためにステートメントが適切に構築されていることを確認することが重要です。この問題は、指定されたバインディングの数が予期された数と一致しない場合に発生し、ProgrammingError が発生します。
これに対処するには、ステートメントを変更して正しい数の疑問符 (?) を含める必要があります。パラメータ。例:statement = "SELECT * FROM tab WHERE obj IN ({0})".format(', '.join(['?'] * len(list_of_vars)))
join([?]*len(list_of_vars))_ を使用して疑問符のカンマ区切り文字列を生成し、パラメーター値を適切にバインドできるようにします。たとえば、_list_of_vars に ['foo', 'bar'] が含まれている場合、ステートメントは次のようになります。
"SELECT * FROM tab WHERE obj IN (?, ?)"
list_of_vars をパラメータ値:
c.execute(statement, list_of_vars)
以上がSQLite でバインドパラメータを含む「WHERE IN」ステートメントを適切に処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。