我有一张设备表,每个设备都有维护级别的日期。用户可以选择维护级别。因此,我应该针对所选维护级别的每个组合调整我的 SQLAlchemy。例如:
SELECT * WHERE (equipment IN []) AND m_level1 = DATE AND m_level2 = DATE ....)
因此可以为每个 if 条件组合,具体取决于复选框我使用多个字符串来达到我的目标,但我想使用 SQLAlchemy 改进查询。
最佳答案
我假设您正在使用 ORM。
在那种情况下,filter
函数返回一个查询对象。您可以通过执行类似的操作来有条件地构建查询
query = Session.query(schema.Object).filter_by(attribute=value)
if condition:
query = query.filter_by(condition_attr=condition_val)
if another_condition:
query = query.filter_by(another=another_val)
#then finally execute it
results = query.all()
关于python - 如何创建动态过滤器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37336520/