order by造成分页查询的记录重复

场景

有这样一张表,分页查询时,第一页的记录又出现下第二页中,总之每一页会出现之前出现的内容。原因是sort值重复

《order by造成分页查询的记录重复》

分析

在数据库(PostgreSQL)中使用查询语句:
第一页:
SELECT code,name,sort FROM plat_user ORDER BY sort ASC limit 10 offset 0;
第二页:
SELECT code,name,sort FROM plat_user ORDER BY sort ASC limit 10 offset 10;
第三页:
SELECT code,name,sort FROM plat_user ORDER BY sort ASC limit 10 offset 20;

查询结果:在第一页和第二页出现了重复的记录。
《order by造成分页查询的记录重复》

原因

sort的值重复了

解决方法

用来order by的字段要保证唯一性。比如加上UNIQUE或者用户输入时保证其唯一性。

    原文作者:yipeng
    原文地址: https://segmentfault.com/a/1190000019469922
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞