SQLAchemy filter()
查询 user 表里面名字等于 Tom 的:
db.session.query(User).filter(User.name == 'Tom').all()
查询 user 表里面名字等于 Tom 并且年龄等于 18:
db.session.query(User).filter(User.name == 'Tom', User.age == 18).all()
也可以这样:
db.session.query(User).filter(User.name == 'Tom').filter(User.age == 18).all()
如果想使用 and 拼接需要用以下方式:
db.session.query(User).filter(and_(User.name == 'Tom', User.age == 18)).all()
以下的方式 and 后面的 User.age == 18 不会生效:
db.session.query(User).filter(User.name == 'Tom' and User.age == 18).all()
查询 user 表里面名字等于 Tom 的或者年龄等于 18:
db.session.query(User).filter(or_(User.name == 'Tom', User.age == 18)).all()
查询 user 表里面名字等于 Tom 的并且年龄大于 18
db.session.query(User).filter(User.name == 'Tom', User.age > 18).all()
查询 name 中包含字母 a 的所有数据(模糊查询)
db.session.query(User).filter(User.name.like('%{0}%'.format("a"))).all()