mysql 使用limit 和 orderby 进行分页遇到数据重复的坑
根据官网查到的解释,

mysql会对后台执行的limit语句进行优化。
1. 当组合使用 LIMIT with row_countORDER BY, mysql会在找到排序结果的一个row_count 后立即停止排序,而不是对整个结果进行排序。
2. 如果order by列有相同的值,那么MySQL可以自由地以任何顺序返回这些行。换言之,只要order by列的值不重复,就可以保证返回的顺序.
目前解决方式:
可以在orderby 子句中添加列,添加有索引的字段,比如主键 ID。这样在排序时可以保证顺序稳定。

浙公网安备 33010602011771号