Order by排序后分页limit取值出现重复显示问题

Posted afeige

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Order by排序后分页limit取值出现重复显示问题相关的知识,希望对你有一定的参考价值。

一、出现问题的原因:

     有关数据库order by排序不唯一,导致分页出现重复数据问题。

数据库order by排序不唯一,会导致最终的数据排序是不是稳定的,表现出来的结果,就是分页时会重复显示; 

 

二、解决方案:

建议在 order by 最后,增加 PK列 或  ROWID

单单是增加索引缺失不能解决问题,但是增加唯一性索引就行了,PK列 或者 ROWID也能确保唯一,结论是只有能保证order by排序唯一,才会导致结果不重复



原因分析:

当取出的数据排序字段的值是一样的时候,mysql在返回数据时,返回数据顺序不固定,我们取前10个数据的时候,数据库返回数据的顺序,与我们取前20个数据时,数据库返回数据的顺序是完全不同的,于是它生成的limit伪列编号就完全不一样,就导致了显示重复值错误。

 

 

 

 

 见多识广总能让人耳目一新

以上是关于Order by排序后分页limit取值出现重复显示问题的主要内容,如果未能解决你的问题,请参考以下文章

Mysql order by与limit混用陷阱

mysql order by 与 limit 混用陷阱

MySQL分页时使用 limit+order by 会出现数据重复问题

LIMIT&限制查询结果的数量&ORDER BY&排序&分页

Mysql 排序Order by与分页limit结合的数据异常问题

Mysql查询使用limit分页,同时使用order by可能产生的问题