Yii2 - 使用ActiveData 分页数据有重复的问题

使用ActiveData 分页数据有重复的问题

在写一个分页数据时,已经使用了一个字段来做排序,结果出现部分数据丢失,部分数据重新显示在不同的页上。

最初判断为使用 ActiveData 不当造成的。对比之前正常的代码,并没有发现问题。经过排查,当去掉加上的排序规则后,发现数据又能够正常显示完整,初步认定为排序规则出错。
解决方案:给排序加上一个主键倒序。完美实现

原因:
通过分页查询的sql是分多次执行,可以看做成多条不同的sql。当数据量过多时,出现默认排序相同的多条数据。这时出现无序的情况,按照mysql的机制,会按照自身默认的排序重新查找数据,这时就出现了重复现象。

在这里记录一下,以后遇到类似问题

关于mysql自身机制这块原理,留着后面在梳理。

补充

发现一个比较好理解的案例
1、SQL分页排序的实现与分页数据重复问题

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章