You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL 8.0使用OFFSET与FETCH执行查询报错该如何解决?

MySQL 8.0 FETCH语法执行报错解决方案

报错核心原因

你遇到的报错来自两个可能的触发点:

  • 你使用的数据库可视化客户端默认开启了「查询自动追加LIMIT 100」的配置,额外追加的LIMIT语句和FETCH语法产生冲突,导致SQL语法校验失败
  • 你使用的MySQL 8.0小版本低于8.0.11,该版本之前对标准SQL的FETCH语法支持存在缺陷

正确使用方式

方案1:使用标准FETCH语法

先关闭客户端自动追加LIMIT的相关配置,再执行以下语句即可(仅支持MySQL 8.0.11及以上版本):

SELECT Name, Address FROM Employees ORDER BY Salary OFFSET 2 ROWS FETCH NEXT 2 ROWS ONLY;

方案2:使用MySQL原生LIMIT分页写法(全版本兼容,更推荐)

MySQL原生支持更简洁的LIMIT分页语法,等价于FETCH的分页效果,且兼容性更强:

SELECT Name, Address FROM Employees ORDER BY Salary LIMIT 2 OFFSET 2;

注意事项

  • 你当前表中的Salary字段为varchar类型,排序时会按照字符串规则而非数值大小执行,若要按薪资数值排序,建议将字段类型调整为INT或DECIMAL类型
  • 分页查询建议添加唯一字段作为第二排序条件,例如ORDER BY Salary, EmpID,避免相同薪资的数据分页时出现顺序混乱的问题

内容的提问来源于stack exchange,提问作者Prashanth C

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 17:06:04