大概意思就是如果在ORDER BY列中有多个行具有相同的值,则服务器可以自由以任何顺序返回这些行,并且根据整体执行计划的不同,返回值可能会有所不同。 换句话说,这些行的排序顺序相对于无序列是不确定的。
基于这个,就知道为什么会出现这个问题了。这个SQL主要问题是会可能导致分页查询查不出一些记录,如果字段相同的记录多于分页每页记录数,就会导致一些记录上一页出现了,下一页又查出了(MySQL随机返回导致的),而一些数据可能就查不出来了。怎么解决这个问题,想必大家页想到了,MySQL官网上也给出了一种方案:
“If it is important to ensure the same row order with and without LIMIT, include additional columns in the ORDER BY clause to make the order deterministic. For example, if id values are unique, you can make rows for a given category value appear in id order by sorting like this:”
解决
order by change_time,id limit 100 // id为主键
order by 加入这个唯一的索引问题得以解决