如何查询列以查找sql​​alchemy中任何一侧的最近值

时间:2018-01-24 14:34:40

标签: python sqlite sqlalchemy

我可以找到上面或下面的下一个值,但我无法弄清楚如何通过一个查询获得两个值,而且我觉得我已经迷失了连接,别名和{{ 1}}?

所以subqueries

if x = 2450:

这是def get_next_XP_goal(xp): session = DbSessionFactory.create_session() xp_gaol = session.query(XPAchievement) \ .filter(XPAchievement.XP_required > xp) \ .order_by(XPAchievement.XP_required.asc()) \ .first() return xp_gaol ,这很棒。

3100

这是def get_previous_XP_goal(xp): session = DbSessionFactory.create_session() xp_gaol = session.query(XPAchievement) \ .filter(XPAchievement.XP_required <= xp) \ .order_by(XPAchievement.XP_required.desc()) \ .first() return xp_gaol ,这很棒。

1 个答案:

答案 0 :(得分:0)

你可以使用limit():

session.query(XPAchievement) \
    .filter(XPAchievement.XP_required <= xp) \
    .order_by(XPAchievement.XP_required.desc()) \
    .limit(3)

然后是第一个,最后一个是上一个和下一个