Copy & Paste Engineer

【Python】SQLAlchemy where in 検索を行う

【Python】SQLAlchemy where in 検索を行う

PythonのSQLAlchemyでwhere句のinの検索を行う方法。

失敗

SQLAlchemyで配列をinで検索するとエラーが出ます。

bind_ids = [1, 2, 3, 4]
query = "SELECT * FROM sampe_table t WHERE t.id IN (:ids;)"
conn.execute(sqlalchemy.text(query), ids=bind_ids)

成功

inの検索を行う場合は以下のようにすると成功します。 in= ANY を使用してください。

bind_ids = [1, 2, 3, 4]
query = "SELECT * FROM sampe_table t WHERE t.id = ANY(:ids);"
conn.execute(sqlalchemy.text(query), ids=bind_ids)

発行SQL

SELECT * FROM sampe_table t WHERE t.id = ANY(ARRAY[1,2,3,4]);

参考