假设我有一张包含这些数据的表格:
我想通过 createdAt 列 DESC 和 id 列 DESC 来订购它
select id, createdAt from post order by createdAt desc, id desc
现在看起来像这样:
我想用每页 2 个项目对其进行分页并且不想使用offset
,只是limit
:
select id, createdAt from post order by createdAt desc, id desc limit 2
要获取接下来的 2 项,我使用此查询:
SELECT id, createdAt FROM post WHERE createdAt <= '2014-11-16 09:11:03' AND (id < '15' OR createdAt < '2014-11-16 09:11:03') ORDER BY createdAt DESC, id DESC LIMIT 2
我可以这样继续下去。获取最后一项createdAt
,id
然后将其用于next
页面查询。
但我试图制定previous page
查询近两天,但还没有找到办法。
这是我已经尝试过的:
从当前结果中获取第一项(而不是最后一项)使用它的id
和createdAt
字段并反转查询(createdAt >=, id >, created at >
)中的条件。但是这个查询总是给我前两个结果(这是正常的,因为提供这个条件的行是前两个)。
我已经没有想法了。我需要帮助。谢谢。
这是一种方法: