SQLAlchemy反向排序查询

时间:2018-08-09 08:45:33

标签: python postgresql sqlalchemy flask-sqlalchemy

反向排序查询的最佳方法是什么?我只能使用sql / sqlalchemy吗?
例如,如果 我的ID为以下行:[1、2、3、4、5、6、7、8、9、10]
我想按<8>,7、6]

的顺序提取ID为5 后带有限制3 的行。

目前,它适用于:

Comment.query.filter(Comment.id > 5).order_by(Post.id.asc()).limit(3)

我得到了ID为[6、7、8]的列表 然后在Python中使用 list.reverse()获取顺序为[8,7,6]

的列表

这不起作用:
Comment.query.filter(Comment.id > 5).order_by(Post.id.desc()).limit(3)
它将给出ID为[10,9,8]的列表

1 个答案:

答案 0 :(得分:0)

您可以使用CTE。

http://docs.sqlalchemy.org/en/latest/core/selectable.html#sqlalchemy.sql.expression.HasCTE.cte

应用限制:

cte = session.query(Comment).filter(Comment.id > 5).limit(3).cte()

然后反转

result = session.query(cte).order_by(cte.c.id.desc()).all()