【问题标题】:how to get second-last record from a session query如何从会话查询中获取倒数第二个记录
【发布时间】: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 中检查 LIMITOFFSET
  • 如果你使用first() 来获取最后一行,那么使用[-2] 你会得到second-first,而不是second-last。您必须更改 order_by 才能以不同的顺序获取它,然后使用 .fetchall()[-2]。或者保留 order_by 并使用 [1]

标签: python sqlalchemy


【解决方案1】:
obj = session.query(ObjectRes).order_by(ObjectRes.id.desc()).offset(1).first()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-03
    • 1970-01-01
    • 1970-01-01
    • 2018-05-04
    • 1970-01-01
    • 2020-03-03
    • 2022-08-09
    相关资源
    最近更新 更多