您的位置:首頁技術文章
文章詳情頁

python - SqlAlchemy中,一個query如何多次執行filter添加or條件?

瀏覽:95日期:2022-08-05 11:44:39

問題描述

由于某些原因,無法在一個filter里執行添加所有的or

所以有以下情況:已經存在一個queryquery = session.query(User).filter(or_(User.id == 2,User.id == 3))

此時sql語句為SELECT * FROM USER WHERE id=2 or id =3;

此時還需要添加一個條件or_(User.id == 4,User.id == 5)

query = query.filter(or_(User.id == 4,User.id == 5))

此時sql語句變為

SELECT * FROM USER WHERE id=2 or id =3 AND (id=4 or id =5)

我期望的結果是

SELECT * FROM USER WHERE id=2 or id =3 OR id=4 or id =5

請問要怎么辦?

問題解答

回答1:

不可以這樣子嗎?query = session.query(User).filter(or_(User.id == 2,User.id == 3),User.id == 4,User.id == 5)

回答2:

你請試試

query = session.query(User).filter(or_(User.id == 2, User.id == 3, User.id == 4, User.id == 5))

或者(應該更快):

query = session.query(User).filter(User.id.in_([2, 3, 4, 5]))

標簽: Python 編程
相關文章:
国产综合久久一区二区三区