PostgreSQL排序字段不唯一导致分页查询结果出现重复数据
本文最后更新于 2025-02-03,文章内容可能已经过时。
一、背景
PostgreSQL单字段排序,排序字段中可能会出现重复,这样就会导致我们在进行分页查询时会出现一些和预期不相符的现象,如这个数据在第一页出现了,然后再第二页又出现。
二、问题描述
两次分页查询出现了同一条id为xxx的记录,但实际上数据库里只有一条id为xxx的记录,查询结果莫名出现了重复数据。
三、解决方式
核心思路就是让order by拥有唯一性。
具体解决方式就是,补充一个有唯一约束或者大概率唯一的字段作为次级排序条件。
例如,补充主键作为排序条件:
SELECT id,XXX1,XXX2 FROM table ORDER BY xxx1 DESC,id ASC
四、预防
n对1关系的连表查询时,如果根据1端表的字段排序就肯定要加一个n端的id
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 软件从业者Hort
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果