工作中无意中发现的坑
在统计人员绩效的时候有限按照发布日期,群组id进行排序,然后进行分页就发生了奇怪的问题。。。
查询第2页的sql
1 | SELECT * FROM book_performance_item |
查询结果
查询第3页的sql
1 | SELECT * FROM book_performance_item |
查询结果
我很奇怪明明查的是两页的不同数据,为什么返回的数据是一样的呢?
推测
经过查询资料和与同事之间探讨,发现这可能是多个order by 查询时,当排序值都一样的时候,会造成排序乱序,
那我们在经过分页查询的时候很可能数据跟我们想要的结果就不一样了,这时我们需要增加一个排序值,这个排序值是唯一的就能避免上述问题
的发生了。具体为什么mysql会给出这样的结果就得研究mysql排序算法是怎么实现的或者去问问DBA了,由于现在能力有限,暂时
研究不了mysql源码。。。哈哈。