官方文档:Column Elements and Expressions — SQLAlchemy 1.3 Documentation
and_
作用相当于 SQL 的 AND 子句。
from sqlalchemy import and_
User.query.filter(and_(User.username == 'tom', User.age == 18))
or_
作用相当于 SQL 的 OR 子句。
from sqlalchemy import or_
User.query.filter(or_(User.username == 'lucy', User.username == 20))
asc
作用于升序排序。
from sqlalchemy import asc
User.query.order_by(User.age.asc())
另一种写法:
User.query.order_by(asc(User.age))
desc
作用于降序排序。
from sqlalchemy import desc
User.query.order_by(User.age.desc())
另一种写法:
User.query.order_by(desc(User.age))
between
作用相当于 SQL 的 BETWEEN 子句。
from sqlalchemy import between
User.query.filter(between(User.age, 18, 20))
case
相当于 SQL 的 CASE 子句,关于 CASE 的具体用法参见之前的 文章。
from sqlalchemy import case
User.query.order_by(case([
(User.level == '甲', 1),
(User.level == '乙', 2),
(User.level == '丙', 3),
(User.level == '丁', 4),
]))