【问题标题】:postgresql select next 10 after somethingpostgresql 在某事之后选择下一个 10
【发布时间】:2013-12-01 05:30:10
【问题描述】:

有什么方法可以选择 ID 行之后的下 10 行,其中行是按某些东西排序的。

我只提出了简单的解决方案,例如:

  1. 全选
  2. 应用循环查找 ID,然后返回下一个 10

谢谢!

【问题讨论】:

    标签: sql postgresql select


    【解决方案1】:

    您可以使用 LIMIT 。见docs

    SELECT * from tableName
    WHERE id > yourID
    ORDER BY ID ASC
    LIMIT NumRows
    

    sqlfiddle demo

    如果行不按 ID 排序,您可以这样做:

    SELECT * FROM tab1
    WHERE orderColumn > (
      SELECT orderColumn from tab1
      WHERE id = YourId
    )
    ORDER BY orderColumn
    LIMIT 10
    

    sqlfiddle demo

    【讨论】:

    • 好的,谢谢!但问题是我不知道 RowToStart。我只知道它的 ID
    • +1:不错!我对 postgres 不太熟悉,但我的直觉说这个问题可以通过使用游标更好地解决(考虑到这个查询的计划)。你知道吗?
    • 我不会使用它们,但这里有一些关于将它们用于此类事情的讨论。见here
    • 酷,感谢您的解决方案!还有一个小问题:如果 orderColumn 不是唯一的呢?
    • @typedef 你可以做>=选择并将id yourid放在外面
    猜你喜欢
    • 2015-02-04
    • 2011-09-19
    • 1970-01-01
    • 2021-08-03
    • 1970-01-01
    • 2012-06-12
    • 2011-12-16
    • 2023-04-07
    • 1970-01-01
    相关资源
    最近更新 更多