如何通过对可能具有重复值的列进行排序来正确地进行分页?我有一个名为posts
的表,该表具有一列,该列包含名为num_likes
的特定帖子的喜欢次数,我想按num_likes DESC
进行排序。但是下图显示了我遇到的一个问题-在两页之间插入新行会导致获取重复的数据。
This link here解释了该问题,并给出了键集分页的解决方案,但是据我所知,只有在对行进行排序的列为< strong>与众不同/独特。如果不是这种情况,我该怎么办?
答案 0 :(得分:1)
通过向其添加主键,可以轻松地使排序键唯一。
您不必向用户显示主键,只需在内部使用它来区分“相等”的行即可。
对于查询和索引编制,您可以利用PostgreSQL的比较功能,例如:(num_likes, id) >= (4, 325698)
。