我刚刚学习 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/