所以我有一个模型:
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)
,我想通过查询创建一个有序列表,以便所有紧急订单都排在最前面,然后再处理所有紧急订单。而且这两个位置也是按创建时间排序的,因此查询列表的第一顺序将是最早的紧急顺序,而最新的将是不紧急的最新顺序
可以使用纯sqlalchemy完成吗?还是应该在更简单的查询后创建for循环?
答案 0 :(得分:0)
查询结果可以通过在查询中使用order_by
方法进行排序。这需要多个参数,并且您的查询将按每个参数依次排序。提供给desc
的每一列上的order_by
方法可用于控制排序的方向。以下应该适合您。
session.query(MyModel).order_by(MyModel.is_urgent.desc(), MyModel.creation_time)