当前位置: 首页 > 后端技术 > Python

sqlalchemy 使用 filter 多条件查询-当某个条件为空时就忽略该条件

时间:2023-03-26 12:56:15 Python

sqlalchemy使用filter多条件查询:当一个条件为空时忽略条件或操作;func可以进行总量统计。代码功能点:如果user_id有值,取传入的值;如果没有传值,则查询所有user_id不为空的数据;如果state有值,取传值value;如果没有传值,则查询所有状态不为空的数据;实现代码:fromoperatorimportor_fromsqlalchemyimporttext,funcloan_output=db.query(self.model).filter(or_(Loan.user_id==user_id,Loan.user_id!=None),or_(Loan.state==state,Loan.state!=None)).order_by().all()#获取数据总量count=db.query(func.count(Loan.id)).filter(or_(Loan.user_id==user_id,Loan.user_id!=None),or_(Loan.state==state,Loan.state!=None)).scalar()上面的代码在数据层面有问题,如果数据库中有一个字段是空值,无法找到。