Python SQLAlchemy-使用不同的过滤器添加或设置条件
对于SQL语句,我只想在输入变量不是None时执行OR筛选 例如 但这是不可能的。第二个查询变成了AND语句 我不想这样做,因为我不想比较输入变量是否为null或空字符串Python SQLAlchemy-使用不同的过滤器添加或设置条件,python,sqlalchemy,Python,Sqlalchemy,对于SQL语句,我只想在输入变量不是None时执行OR筛选 例如 但这是不可能的。第二个查询变成了AND语句 我不想这样做,因为我不想比较输入变量是否为null或空字符串 query = query.filter(or_(Table.field1 == var_1, Table.field2 == var_2)) 如何解决此问题?您可以动态构造“或”部分: 还请注意,def在Python中是一个保留字,请考虑重命名此变量。您可以动态构造“或”部分: 还要注意,def在Python中是一个保留字
query = query.filter(or_(Table.field1 == var_1, Table.field2 == var_2))
如何解决此问题?您可以动态构造“或”部分:
还请注意,
def
在Python中是一个保留字,请考虑重命名此变量。您可以动态构造“或”部分:
还要注意,
def
在Python中是一个保留字,请考虑重命名此变量。啊,很好,很方便,因为或
可以正确处理单个过滤器元素啊,很好,很方便,或
可以正确处理单个过滤器元素
query = query.filter(or_(Table.field1 == var_1, Table.field2 == var_2))
query = session.query(Table)
conditions = []
if abc:
conditions.append(Table.field1 == abc)
if def:
conditions.append(Table.field2 == def)
query = query.filter(or_(*conditions))