【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]);