JavaScriptを有効にしてください

【Python】SQLAlchemy where in 検索を行う

 ·  ☕ 1 分で読めます

【Python】SQLAlchemy where in 検索を行う

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

失敗

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

1
2
3
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 を使用してください。

1
2
3
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

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

参考

共有

こぴぺたん
著者
こぴぺたん
Copy & Paste Engineer