PythonでリストをSQLクエリ文字列に連結する方法


方法1: 文字列の結合演算子を使用する方法 この方法では、Pythonの文字列結合演算子(+)を使用してリストの要素を連結し、SQLクエリ文字列を作成します。

my_list = ['apple', 'banana', 'orange']
query_string = 'SELECT * FROM fruits WHERE name IN (' + ', '.join(my_list) + ');'
print(query_string)

出力:

SELECT * FROM fruits WHERE name IN ('apple', 'banana', 'orange');

方法2: f文字列を使用する方法 Pythonのf文字列を使用すると、変数を直接文字列に挿入できます。この方法を使用すると、コードがより読みやすくなります。

my_list = ['apple', 'banana', 'orange']
query_string = f"SELECT * FROM fruits WHERE name IN ({', '.join(my_list)});"
print(query_string)

出力:

SELECT * FROM fruits WHERE name IN ('apple', 'banana', 'orange');

方法3: パラメータ化されたクエリを使用する方法 もし、リストの要素がユーザーからの入力など外部から与えられる場合は、SQLインジェクション攻撃を防ぐためにパラメータ化されたクエリを使用することをおすすめします。以下は、Pythonのパラメータ化されたクエリを使用する例です。

my_list = ['apple', 'banana', 'orange']
placeholders = ', '.join(['%s'] * len(my_list))
query_string = f"SELECT * FROM fruits WHERE name IN ({placeholders});"
print(query_string)

出力:

SELECT * FROM fruits WHERE name IN (%s, %s, %s);

これらの方法を使用すると、PythonでリストをSQLクエリ文字列に連結することができます。適切な方法を選択し、プロジェクトの要件に合わせてコードを適用してください。