mysql中limit用法详解及注意事项总结

 更新时间:2026年01月23日 09:19:14   作者:一位代码  
mysql数据库中limit子句可以被用于强制select语句返回指定的记录数,这篇文章主要介绍了mysql中limit用法详解及注意事项的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

mysql 中的 limit 用来限制 select 查询返回的行数,程序中常被用作分页查询。

一、limit 用法及示例

(一)基础用法及示例

语法:select * from 表名 limit [offset,] count

参数说明:

offset:偏移量,即指跳过多少行,可省略,默认为 0,表示跳过 0 行;范围为 [0,+∞)。

count:跳过 offset 行后,取 count 行数据,范围为 [0,+∞)。

特别注意:limit 中的 offset 和 count 必须大于等于 0;且不能为表达式,只能为明确的数字。

实例1:获取前3行记录

命令:select * from per_data limit 0,3;

实例2:获取第1行紧接着的2行记录

命令:select * from per_data limit 1,2;

(二)获取值最大的一条记录

实例:获取 id_num 值最大的一条记录。

思路:先按照 id_num 降序排序,然后取第一条记录。

命令:select * from per_data order by id_num desc limit 1;

(三)获取第 n 行到第 m 行数据

语法:select * from 表名 limit n-1,m-n+1;  # offset 与 count 都是从0开始且为左闭右开。

实例:获取 per_data 表的第 3 到第 5 行的数据

命令:select * from per_data limit 2,3;

(四)实现分页查询

page:表示第几页,从1开始,范围 [1,+∞)

pageSize:每页显示多少条记录,范围 [1,+∞)

语法:select * from 表名 limit (page-1)*pageSize,pageSize;

原理与获取第 n 行到第 m 行数据相同

需要注意的是,在分页排序时,最好根据主键来排除二义性,在二义性情况下会导致分页结果混乱。

注:这里的二义性可理解为,按价格给商品排序,当遇到价格相同时,该怎么排序?价格相同又没指定其他条件,mysql 就乱排了。

二、limit X, -1 已不可使用

limit X, -1 早已不可使用,本身也是一个错误

(一)错误情况

需求:使用 mysql 时,需要获取第 X 条数据之后的所有数据。

这时,首先想到的就是利用 limit 来实现。

早期的部分文章或者资料中,提到可以使用:limit X,-1

例如,获取第一条后的所有数据,则可写成如下 sql 语句:

select * from per_data limit 1,-1;

执行该 sql 语句后,会发现报错如下:

错误提示原文:ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-1' at line 1

(二)错误原因及解决办法

错误原因:据官方解释,limit X, -1 这种形式被认为是一个优先级较低的 bug ,已经被修复,修复后的 limit ,将不再接收负数,两个参数都必须大于或等于 0 。

上图原文链接:https://bugs.mysql.com/bug.php?id=2037

(三)解决办法

任意填写一个满足需求的足够大的正数即可。

比如,示例表 per_data 中一共有 6 条数据,要求是获取第一条后的所有数据。

语法:【limit 1,count】 ,其中 count 可以是 [5,+∞)中的任意一个数。

完整语句如下:

select * from per_data limit 1,5;#这里的5可替换成任意一个大于5的数字

以上就是 mysql 中 limit 的用法及相关注意事项,可供参考。

总结

到此这篇关于mysql中limit用法详解及注意事项的文章就介绍到这了,更多相关mysql limit用法详解内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SQL LIKE运算符用法示例及通配符解释

    SQL LIKE运算符用法示例及通配符解释

    这篇文章主要为大家介绍了SQL LIKE运算符用法示例及通配符解释,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • MySQL联合查询详细示例代码

    MySQL联合查询详细示例代码

    MySQL联合查询是数据库操作中十分重要的技能之一,它允许用户从多个表中提取并组合数据,下面这篇文章主要介绍了MySQL联合查询的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-10-10
  • MYSQL数据表损坏的原因分析和修复方法小结(推荐)

    MYSQL数据表损坏的原因分析和修复方法小结(推荐)

    MYSQL数据表损坏的原因分析和修复方法小结,碰到的朋友可以参考,下面整理一些比较全,希望对大家有所帮助。
    2011-01-01
  • MySQL延迟问题和数据刷盘策略流程分析

    MySQL延迟问题和数据刷盘策略流程分析

    这篇文章主要介绍了MySQL延迟问题和数据刷盘策略流程分析,本文要给大家提到了mysql复制流程,需要的朋友可以参考下
    2020-02-02
  • MySQL配置sql_mode的参数属性作用

    MySQL配置sql_mode的参数属性作用

    ,通过设置sql_mode,可以完成不同严格程度的数据校验,本文主要介绍了MySQL配置sql_mode的作用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-07-07
  • mysql存储过程之错误处理实例详解

    mysql存储过程之错误处理实例详解

    这篇文章主要介绍了mysql存储过程之错误处理,结合实例形式详细分析了mysql存储过程错误处理相关原理、操作技巧与注意事项,需要的朋友可以参考下
    2019-12-12
  • mysql 5.6.17 绿色版(免安装)安装配置教程

    mysql 5.6.17 绿色版(免安装)安装配置教程

    这篇文章主要为大家详细介绍了mysql 5.6.17 绿色版(免安装)安装配置教程,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • Linux下Mysql5.6 二进制安装过程

    Linux下Mysql5.6 二进制安装过程

    这篇文章主要介绍了Linux下Mysql5.6 二进制安装过程,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-06-06
  • CentOS6.7 mysql5.6.33修改数据文件位置的方法

    CentOS6.7 mysql5.6.33修改数据文件位置的方法

    mysql存放的数据文件,分区容量较小,目前已经满,导致mysql连接不上,怎么解决呢?下面小编给大家分享CentOS6.7 mysql5.6.33修改数据文件位置的方法,一起看看吧
    2017-06-06
  • 云服务器安装mysql的实现步骤

    云服务器安装mysql的实现步骤

    在当前的互联网时代,云计算已经成为重要的平台支撑,本文就来介绍一下云服务器安装mysql的实现步骤,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01

最新评论