我只是学习SQL炼金术和使用ORM拉入记录。
然而,有一些函数似乎是唯一的其他方式拉入记录,如sqlalchemy.and_',
sqlalchemy。or_"等。
我想知道我如何使用ORM,但仍然采用一些"或"子句,所以我可以做这样的事情:给定一个ORM对象Person
选择所有记录,其中姓氏是"史密斯"或"李"或"主教",但排除年龄小于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)
)