首页 > 数据库 > mysql教程 > mysql order by limit的坑怎么解决

mysql order by limit的坑怎么解决

WBOY
发布: 2023-05-27 11:03:22
转载
1586 人浏览过

分页查询的时候遇到的坑:

发现的问题: 对单个无索引的字段进行排序后limit .发现当被排序字段有相同值时并且在limit范围内,取的值并不是正常排序后的值,

也就是说,当排在第N行的数据可取key1、 key2 时 , 排序结果可能是key1,也可能是key2。

mysql order by limit的坑怎么解决

排序+ limit 结果 (排序键无索引) 
按cnt取key_word分别前三结果:

mysql order by limit的坑怎么解决

原文:

If multiple rows have identical values in the ORDER BY columns, the server is free to return those rows in any order, and may do so differently depending on the overall execution plan. In other words, the sort order of those rows is nondeterministic with respect to the nonordered columns.
是说如果order by的列有相同的值时, mysql会随机选取这些行,具体根据执行计划有所不同。

解决: order by 的列中包含一个索引列
此处增加主键id为排序列

以上是mysql order by limit的坑怎么解决的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:yisu.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板