我如何通过查询来命令,以便所有列的列等于true?

问题描述 投票:0回答:1

所以我有一个模型:

id = db.Column(db.Integer, primary_key=True) 
is_urgent = db.Column(db.Boolean, default=False)
creation_time = db.Column(db.DateTime, index=True, default=datetime.utcnow)

并且我想通过查询创建一个有序列表,以便所有紧急的订单首先出现,然后是所有不紧急的。并且这两个gropus也按创建时间排序,因此查询列表的第一个顺序将是最旧的紧急订单,最新的紧急订单将是最紧急的最新订单,

可以用纯粹的sqlalchemy来完成吗?或者我应该在更简单的查询后创建一个for循环?

sqlalchemy flask-sqlalchemy
1个回答
0
投票

可以在查询中使用order_by方法对查询结果进行排序。这需要多个参数,您的查询将依次按每个参数进行排序。提供给desc的每个列上的order_by方法可用于控制排序的方向。以下内容适合您。

session.query(MyModel).order_by(MyModel.is_urgent.desc(), MyModel.creation_time)
© www.soinside.com 2019 - 2024. All rights reserved.