工作中遇到两个bug,一个是分页查询第一页和第二页数据有重复,另一个是导出到EXCEL中的数据顺序和分页查询的顺序不一致。
研究发现,隐患产生原因:
(1)order by 和 limit 混用
(2)order by 后面的字段存在重复 或 null
解决方法:
order by 多加一个非空且唯一的字段兜底,
例如: order by xxx1,xxx2,id
id非空且唯一,用它兜底完美解决。
至于原因的具体分析,链接如下:
MySQL中ORDER BY与LIMIT一起使用(有坑)