重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章主要介绍“MySQL order by limit的坑怎么解决”,在日常操作中,相信很多人在mysql order by limit的坑怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql order by limit的坑怎么解决”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
成都创新互联公司长期为上1000+客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为仪陇企业提供专业的网站设计、网站建设,仪陇网站改版等技术服务。拥有十多年丰富建站经验和众多成功案例,为您定制开发。
分页查询的时候遇到的坑:
发现的问题: 对单个无索引的字段进行排序后limit .发现当被排序字段有相同值时并且在limit范围内,取的值并不是正常排序后的值,
也就是说,当排在第N行的数据可取key1、 key2 时 , 排序结果可能是key1,也可能是key2。
排序+ limit 结果 (排序键无索引)
按cnt取key_word分别前三结果:
原文:
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的坑怎么解决”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!