【发布时间】:2019-07-29 15:23:36
【问题描述】:
This answer 告诉您如何从会话查询中获取最后一行:
obj = session.query(ObjectRes).order_by(ObjectRes.id.desc()).first()
我需要它之前的一个 - 你如何获得倒数第二个?
【问题讨论】:
-
获取所有(或使用
LIMIT 2)并使用obj[1]。或者在 SQL 查询中使用OFFSET 1 -
这行得通吗? obj = session.query(ObjectRes).order_by(ObjectRes.id.desc())[-2]
-
@Amit 不,那东西不是列表,它是
<class 'flask_sqlalchemy.BaseQuery'> -
您应该已经使用 Google 在 sqlalchemy 中检查
LIMIT和OFFSET -
如果你使用
first()来获取最后一行,那么使用[-2]你会得到second-first,而不是second-last。您必须更改order_by才能以不同的顺序获取它,然后使用.fetchall()[-2]。或者保留 order_by 并使用[1]
标签: python sqlalchemy