【发布时间】:2016-09-05 11:14:49
【问题描述】:
我想选择 5 个比 id 15 更新的帖子,仅使用 SQL 以降序排列。这个查询有效,但我想只使用一个SELECT 来做到这一点。有什么想法吗?
SELECT * FROM (
SELECT * FROM posts WHERE id > 15 ORDER BY id ASC LIMIT 5
) as reverse_ordered ORDER BY id DESC
下一个查询不起作用,因为我想要 id 为 20-16 的帖子,但这个查询会返回最新的帖子(例如 100-96,如果有 100 个帖子)
SELECT * FROM posts WHERE id > 15 ORDER BY id DESC LIMIT 5
id 之间的差距是可能的,上面的数字只是一个例子。
【问题讨论】:
-
我认为不可能。为什么你希望它是一个单一的查询?为了简单还是什么?
-
简单和好奇。
-
好的,让我们等待一些有趣的答案
-
如果您的 id 没有间隙(您说要 20-16),您可以使用
select * from posts where id < 21 order by id desc limit 5。否则你需要你的双重select。 -
是的,遗憾的是可能存在差距:(
标签: sql postgresql pagination