Python Sqlalchemy按顺序获取最后X行

Python Sqlalchemy按顺序获取最后X行,python,sqlalchemy,Python,Sqlalchemy,我需要从表中获取最后的X行,但按ID的顺序。我如何才能实现这一点 query = users.select().order_by(users.c.id.desc()).limit(5) print reversed(conn.execute(query).fetchall() ) 无论如何,类似这样的东西我相信您可以在order_by参数前面加一个“-”以获得相反的顺序 query = users.select().order_by(-users.c.id.desc()).limit(5)

我需要从表中获取最后的X行,但按ID的顺序。我如何才能实现这一点

query = users.select().order_by(users.c.id.desc()).limit(5)

print reversed(conn.execute(query).fetchall() )

无论如何,类似这样的东西

我相信您可以在order_by参数前面加一个“-”以获得相反的顺序

query = users.select().order_by(-users.c.id.desc()).limit(5)
另外,我相信您可以使用python切片作为限制的替代方法

query = users.select().order_by(users.c.id.desc())[-5:]

query = users.select().order_by(-users.c.id.desc())[:5]
这对我有用

c=session.query(a).order_by(a.id.desc()).limit(2)
c=c[::-1]

此解决方案比BrendanSimon提出的python切片解决方案快10倍。

我认为该查询不会将它们按ID顺序排列,它会反转ID,因此,我最终做的是反转它给我的输出。显然,使用负索引会导致在Python中获取所有行和切片,而不是将
限制
发送到SQL。对于核心:st=select([tab])。其中(tab.c.timestamp