ホームページ >バックエンド開発 >Python チュートリアル >SQL `IN` 句のパラメータとして Python リストを使用するにはどうすればよいですか?

SQL `IN` 句のパラメータとして Python リストを使用するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-20 13:15:15468ブラウズ

How Can I Use a Python List as Parameters in an SQL `IN` Clause?

Python リストをパラメータとして SQL クエリに組み込む

値 (例: [1, 5, 8])、これらのリスト要素に基づいてデータベース テーブルからデータを取得したいとします。具体的には、

select name from students where id = |IN THE LIST l|

のような SQL クエリを発行することを目的としています。これを実現するには、SQL 文字列に値を直接埋め込むよりも汎用性が高く、堅牢なパラメータ化されたクエリ アプローチの採用を検討してください。この手法では、数値と文字列の両方の値を効果的に処理でき、潜在的なエスケープの問題を排除できます。

次の Python コード スニペットは、このアプローチを示しています。

placeholder= '?' # For SQLite. Adjust based on database parameter style.
placeholders= ', '.join(placeholder for unused in l)
query= 'SELECT name FROM students WHERE id IN (%s)' % placeholders
cursor.execute(query, l)

プレースホルダー (例: '?') を使用する。 ) SQL クエリでリスト (l) をパラメータとして渡すと、データベースによって値が正しく処理されることが保証されます。このアプローチにより、データの整合性が保証され、制御されていない文字列の連結によって発生する可能性がある潜在的な SQL インジェクションの脆弱性が防止されます。

以上がSQL `IN` 句のパラメータとして Python リストを使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。