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

一、出现问题的原因:

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

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

 

二、解决方案:

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

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



原因分析:

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

 

 

 

 

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

posted @ 2020-03-12 17:53  杨宇飞  阅读(683)  评论(0编辑  收藏  举报