SQLAlchemy IN 子句

新手上路,请多包涵

我正在尝试在 sqlalchemy 中执行此查询

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

我想在执行时绑定列表 [123, 456]

原文由 wonzbak 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 808
2 个回答

怎么样

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() 接受两个参数,第一个是要检索的字段列表,第二个是 where 条件。您可以通过 c (或 columns )属性访问表对象上的所有字段。

原文由 Simon 发布,翻译遵循 CC BY-SA 3.0 许可协议

假设您使用声明式风格(即 ORM 类),这很容易:

 query = db_session.query(User.id, User.name).filter(User.id.in_([123,456]))
results = query.all()

db_session is your database session here, while User is the ORM class with __tablename__ equal to "users" .

原文由 Xion 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏