SQLAlchemy中的条件过滤

2024-04-25 21:53:57 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有一种方法可以有条件地向SQL炼金术形式中的查询添加filter参数?

例如,想象一下,我有以下内容:

q = session.query(X)
if a:
 q.filter(X.y == 'a')
elif b:
 q.filter(X.y == 'a', X.z == 'b')
elif c:
 q.filter(X.y == 'a', X.p == 'd') 

有什么办法可以说

X.z == 'b'如果b

无需在每个过滤器中读取(X.y == 'a')

看来我可以

q.filter(X.y == 'a').filter(X.y == 'b')

但这会更改正在执行的查询。


Tags: 方法过滤器sql参数ifsessionfilter条件