我有一个条目表(基本上是单词),可以按字母顺序排序。我已经知道了总页数,所以我可以显示 1 2 3 ... 19 20
使用onclick处理程序翻转到新页面。如果一个特定页面的结果已经被加载,它将简单地显示它,否则一个新的sql请求将发出一个offset和limit。
现在,当用户将鼠标悬停在“3”页的链接上时,最好有一个工具提示来显示每个页面上的第一个条目。我知道我可以在mouseover上发出一个请求,但是在第一个查询中就可以得到这个列表了吗?
表格单词示例:
+-ID-+----Word---+
+ 1 + ability +
+ 2 + able +
+ 3 + about +
+ 4 + above +
+ 5 + accept +
+ 6 + according +
+ 7 + account +
+----+-----------+
示例初始查询(很明显,在实际查询中,limit 2类似于limit 50) SELECT * FROM words ORDER BY word ASC LIMIT 2 OFFSET 0
进一步查询示例(例如,如果用户单击“3”页): SELECT * FROM words ORDER BY word ASC LIMIT 2 OFFSET 4
期望结果:
我希望有一个初始查询,返回ability和able(显然),然后还返回about(第2页的第一项)、accept(第3页的第一项)和account(第4页的第一项)。同样,我确信在mouseover或类似的东西上使用事件处理程序会很容易,或者在两个后续查询中也不会太难,但是如果可能的话,我希望在一个查询中这样做。如果“其他页面中的第一个”项目的名称不同,那就最好了,但我想这也会有不同的管理方式。初始查询将始终与 OFFSET 0
(即用户不能从第12页开始)。
目前在postgresql版本12.1上
1条答案
按热度按时间krcsximq1#
如果需要一个返回第n行的查询,可以使用
row_number()
和模运算:你也许可以使用
id
,如果是连续的,则为无间隙,以1开头,表示单词的顺序。