2013-04-29 62 views
0

我剛學SQL鍊金術和使用ORM在記錄拉。實現與,或,而不是查詢的SQL鍊金術ORM

不過,也有一些功能似乎是唯一的拉動記錄,像sqlalchemy.and_', sqlalchemy.or_」的其他方式等

我不知道我該如何使用ORM,但仍使用一些「或」子條款,所以我可以做這樣的事情:給定ORM對象Person選擇姓氏是「Smith」或「Lee」或「Bishop」但排除年齡小於18的記錄的所有記錄。

Is這隻有在我不使用ORM時纔可能使用

回答

3

默認情況下,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) 
    )