filler 的用法

307 阅读1分钟

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()