1. ホーム
  2. パイソン

[解決済み】SQLAlchemyのIN句

2022-04-16 23:29:05

質問

sqlalchemyでこのクエリを実行しようとしています。

SELECT id, name FROM user WHERE id IN (123, 456)

リストをバインドしたい [123, 456] 実行時に

どのように解決するのですか?

どうですか?

session.query(MyUserClass).filter(MyUserClass.id.in_((123,456))).all()

編集 : ORMがなければ

session.execute(
    select(
        [MyUserTable.c.id, MyUserTable.c.name], 
        MyUserTable.c.id.in_((123, 456))
    )
).fetchall()

select() は2つのパラメーターを取ります。最初のパラメーターは取得するフィールドのリストで、2番目のパラメーターは where の条件を満たす必要があります。テーブルオブジェクトのすべてのフィールドにアクセスするには c (または columns ) プロパティがあります。