前言
sqlalchemy的query默认是按id升序进行排序的,当我们需要按某个字段降序排序,就需要用到 order_by。
order_by 排序
默认情况下 sqlalchemy 的 query 默认是按 id 升序进行排序的
代码语言:javascript复制res = session.query(Project).all()
print(res) # [<Project(id='1', project_name='string'...)>, <Project(id='2', project_name='项目1'...)>, ....]
使用 desc 按 id 降序
代码语言:javascript复制res = session.query(Project).order_by(Project.id.desc()).all()
print(res) # [<Project(id='7', project_name='项目133'...)>, <Project(id='6', project_name='项目6'...)>, ....]
按其它字段降序
代码语言:javascript复制res = session.query(Project).order_by(Project.name.desc()).all()
desc 方法
前面通过order_by(Project.name.desc())
在字段后面加desc()
方法,编辑器无法识别到
还有另外一个方法,直接导入desc 方法
from sqlalchemy import desc
res = session.query(Project).order_by(desc(Project.project_name)).all()
print(res) # [<Project(id='6', project_name='项目6'...)>, <Project(id='5', project_name='项目5'...)>, ....]