gpt4 book ai didi

python - SQLAlchemy 中的条件过滤

转载 作者:太空狗 更新时间:2023-10-29 20:18:30 25 4
gpt4 key购买 nike

有没有办法在 SQL Alchemy ORM 中有条件地向查询添加 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')

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

最佳答案

尝试将查询收集到列表中,然后在调用 filter 时使用 * 运算符:

queries = [X.y == 'a']
if b:
queries.append(X.z == 'b')
q.filter(*queries)

顺便说一句,我不明白为什么你认为链接两个 filter 会改变你的查询,它会对应于 X.y = a AND X.z = b 就像你使用 filter(X.y == 'a', X.z == 'b')

关于python - SQLAlchemy 中的条件过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31063860/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com