SQLAlchemy添加或使用不同fi的条件

2024-04-24 03:58:07 发布

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

对于SQL语句,我只想在输入变量不是None的情况下执行OR过滤器。在

例如

# input variable
var_1 = "apple"
var_2 = "pear"

query = session.query(Table)
if var_1:
    query = query.filter(or_(Table.field1 == var_1))
if var_2:
    query = query.filter(or_(Table.field2 == var_2))

但这是不可能的。第二个查询改为AND语句。在

我不想这样做,因为我不想比较一个输入变量,如果它是null或空字符串。在

^{pr2}$

我怎么解决这个问题?在


Tags: ornone过滤器appleinputsqlifvar
1条回答
网友
1楼 · 发布于 2024-04-24 03:58:07

或者“你可以动态地构造零件:

query = session.query(Table)

conditions = []
if abc:
    conditions.append(Table.field1 == abc)
if def:
    conditions.append(Table.field2 == def)

query = query.filter(or_(*conditions))

还要注意,def是Python中的保留字,请考虑重命名此变量。在

相关问题 更多 >