我只是在学习SQL Alchemy并使用ORM来提取记录。
但是,有些功能似乎对于提取记录的其他方式是唯一的,例如sqlalchemy.and_',
sqlalchemy.or_'等。
我想知道如何使用ORM但仍然使用一些“OR”子条款,所以我可以这样做:给定一个ORM对象Person
选择姓氏为“Smith”或“Lee”的所有记录“或”主教“但不包括年龄小于18岁的记录。
如果我不使用ORM,这是否可行?
答案 0 :(得分:4)
默认情况下,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)
)