Mic*_*Hsu 2 postgresql pagination
如何通过对可能具有重复值的列进行排序来正确分页?我有一个名为 的表posts,其中有一列保存某个帖子的点赞数,名为num_likes,我想按 排序num_likes DESC。但是下图显示了我遇到的一个问题 - 在两个页面之间插入的新行会导致获取重复的数据。
这个链接在这里解释了这个问题,并给出了keyset pagination的解决方案,但从我所看到的,只有当行被排序的列是distinct / unique时才有效。如果不是这种情况,我该怎么做?

您可以通过向排序键添加主键轻松地使排序键唯一。
您不必向用户显示主键,只需在内部使用它来区分“相等”的行。
对于查询和索引,你可以使用PostgreSQL的能力比较像这样:(num_likes, id) >= (4, 325698)。