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

本文解决了一个在使用MyBatis向MySQL数据库查询数据时遇到的问题,即LIMIT和ORDER BY语句的位置不当导致的语法错误。通过调整LIMIT语句的位置至查询语句末尾,成功解决了数据获取异常的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在重做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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值