SQLAlchemy 查询,多条件的查询需求,根据传入条件的实际情况,决定将哪些条件作为filter条件进行查询
多个条件的查询,使用 SQLAlchemy 的查询构建器来动态地构建查询,根据传入的条件参数(condition1
, condition2
, condition3
等)来决定是否将这些条件添加到查询中
class Order(Base):
__tablename__ = 'orders'
id = Column(Integer, primary_key=True)
item1= Column(String)
item2= Column(String)
item3= Column(String)
根据传入条件的实际情况,决定将哪些条件作为filter条件进行查询
def get_data_all(session, id, condition1=None, condition2=None, condition3=None):
# 初始化一个空的条件列表
conditions = []
# 如果有id条件,总是加入
conditions.append(Order.id == id)
# 如果有其他条件,并且条件值不为None,则加入到条件列表中
if condition1 is not None:
conditions.append(Order.item1== condition1)
if condition2 is not None:
conditions.append(Order.item2== condition2)
if condition3 is not None:
conditions.append(Order.item3== condition3)
# 使用and_函数将所有条件组合起来
if conditions:
query = session.query(Order).filter(and_(*conditions))
else:
# 如果没有任何条件(除了id),则只根据id查询
query = session.query(Order).filter(Order.id == id)
return query.all()
原文地址:https://blog.csdn.net/yuxuan89814/article/details/142561714
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!