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分页时使用 limit+order by 会出现数据重复问题
LIMIT&限制查询结果的数量&ORDER BY&排序&分页