在多列中使用LIKE运算符的SQLAlchemy

时间:2018-07-14 07:34:55

标签: python flask sqlalchemy flask-sqlalchemy

是否可以使用LIKE运算符多列过滤数据?

users = db.UserOPD.query\
        .filter(\
            db.UserOPD.alamat.like('%'+q+'%'),\
            db.UserOPD.contact.like('%'+q+'%'),\
            db.UserOPD.jabatan.like('%'+q+'%')\
            )\
         .order_by(db.UserOPD.id.desc())

1 个答案:

答案 0 :(得分:0)

添加了or_()函数

后,此问题得以解决
from sqlalchemy import or_
users = db.UserOPD.query\
          .filter(\
                  or_(\
                      db.UserOPD.alamat.like('%'+q+'%'),\
                      db.UserOPD.contact.like('%'+q+'%'),\
                      db.UserOPD.jabatan.like('%'+q+'%'),\
                      db.UserOPD.nama.like('%'+q+'%')\
                     )\
                  )\
          .order_by(db.UserOPD.id.desc())