【踩坑】mysql LIMIT 与 ORDER BY位置问题

今天在重做iblog项目后台时,当测试功能,发现后台报错,位置在 MyBatis 向 MySQL 取数据时的语法问题,如下:

SELECT *         FROM article         WHERE authorID = 1         LIMIT 0, 10000         ORDER BY articleTime                       DESC

然后我用 phpMyAdmin 测试时,发现错误定位在 LIMIT 字眼,删去后才能正常获取数据,这是为什么呢?

然后我把 LIMIT 放指令最后,发现取数据正常,这又是为什么呢?难度 LIMIT 什么时候都要放最后?

经过谷歌一番,有网友解答了:

If you use LIMIT row_count with ORDER BY, MySQL ends the sorting as soon as it has found the first row_count rows of the sorted result, rather than sorting the entire result.

反正遇到 ORDER BY 一定要把 LIMIT 语句放最后。

转载于:https://www.cnblogs.com/lipohong/p/10721526.html

MySQL中,LIMITORDER BY可以结合使用来限制返回结果集的行数并对结果进行排序。ORDER BY用于对查询结果进行排序,可以按照指定的列或表达式进行升序或降序排序。而LIMIT用于限制返回的结果集的行数,可以指定返回的起始位置和要返回的行数。通过结合使用ORDER BY和LIMIT,可以对排序后的结果进行切片操作,只返回指定数量的行。需要注意的是,如果ORDER BY的列有相同的值,MySQL可以自由地以任何顺序返回这些行,只要ORDER BY的列的值不重复,就可以保证返回的顺序。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [MySQLORDER BY 可以和 LIMIT 混合使用吗?底层原理是什么?](https://blog.csdn.net/qq_36777143/article/details/131167778)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [MySQLORDER BY与LIMIT一起使用(有)](https://blog.csdn.net/wit_cx/article/details/109212690)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值