sqlalchemy 数据库查询,多个模糊查询条件,如果查询条件为空则查询全部数据,如果不为空则根据查询条件查询
时间: 2024-05-07 20:16:49 浏览: 74
可以使用 SQLAlchemy 的 or_ 和 and_ 连接条件,然后使用 filter 方法进行查询。如下所示:
```python
from sqlalchemy import or_, and_
# 假设有三个模糊查询条件
condition1 = '张三'
condition2 = '18'
condition3 = '男'
# 创建查询对象
query = session.query(MyTable)
# 判断条件是否为空
if condition1 or condition2 or condition3:
# 使用 or_ 和 and_ 连接条件
filter_cond = and_(
MyTable.name.like(f'%{condition1}%') if condition1 else True,
MyTable.age.like(f'%{condition2}%') if condition2 else True,
MyTable.gender.like(f'%{condition3}%') if condition3 else True
)
# 根据条件查询
result = query.filter(filter_cond).all()
else:
# 查询全部数据
result = query.all()
```
上述代码中,首先判断查询条件是否为空,如果不为空则使用 or_ 和 and_ 连接条件,根据条件进行查询;如果为空则查询全部数据。
注:MyTable 是代表你要查询的数据库表名。
阅读全文