orm - 在 SQL Alchemy ORM 上实现 and、or、not 查询

标签 orm sqlalchemy

我刚刚学习 SQL Alchemy 并使用 ORM 来提取记录。

但是,有一些函数似乎对于其他提取记录的方式是独特的,例如 sqlalchemy.and_'、sqlalchemy.or_' 等。

我想知道如何使用 ORM,但仍然使用一些“OR”子句,这样我就可以执行以下操作:给定一个 ORM 对象 Person 选择姓氏为“Smith”的所有记录或“Lee”或“Bishop”,但排除年龄小于 18 岁的记录。

这是否只有在我使用 ORM 时才可能实现?

最佳答案

默认情况下,filter 子句会附加 AND。所以下面的代码就可以做到这一点:

from sqlalchemy import or_

qry = (session.query(Person).
    filter(or_(Person.LastName == 'Smith', Person.LastName == 'Lee', Person.LastName == 'Bishop')).
    filter(Person.age >= 18)
    )

关于orm - 在 SQL Alchemy ORM 上实现 and、or、not 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16289515/

相关文章:

java - Hibernate 使用条件执行更新

javascript - 为什么我可以直接从 sequelize 模型访问数据值?

mysql - SQLAlchemy 更新时间在 Alembic 修订版中不起作用

python - sqlalchemy.exc.CircularDependencyError : Can't sort tables for DROP; an unresolvable foreign key dependency exists between tables

java - 哪个 Java ORM 框架支持 MongoDB 中文档的多态性?

java - 是否可以将 show_sql 的所有输出放在一个单独的文件中?

model-view-controller - DAL、DTO 和 DAO 在 3 层架构风格中(包括 MVC)有什么区别

python - Flask-Migrate 模型中的枚举类有问题

python - 将 SQLAlchemy 与复合主键和外键一起使用

python - flask + SQLAlchemy : Load database with records by running python script