当前位置: 首页 > news >正文

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 的用法及相关注意事项,可供参考。

-end-

http://www.gsyq.cn/news/128009.html

相关文章:

  • mysql | 环境变量问题及其配置方法详解
  • 微观交通流仿真软件:AIMSUN_(9).公共交通系统仿真
  • 【有手就行】SWIFT:花20分钟把大模型的名字变成你的名字
  • 完整教程:SpingBoot自动装配流程讲解
  • dy直播间评论保存插件
  • lanchain高级
  • 神经网络动力学框架NeRD在机器人仿真领域的革新
  • Day35less--导入与导出
  • Section five Homework
  • 别再花冤枉钱!这2个免费降AI率的工具,降AI效果也很好!
  • 美团 商家端响应体解密
  • 杜教筛
  • Rope旋转位置编码解读
  • 江西南昌住家保姆/不住家保姆品牌TOP5评测!专业认证+服务保障企业榜单发布,品质家政赋能现代家庭生活 - 全局中转站
  • 别乱花钱了!6款实测有效的降ai工具推荐,学姐教你降低ai率!
  • 霍华德·马克斯的市场周期定位技巧
  • Boost asio定时器
  • Product Hunt 每日热榜 | 2025-12-20
  • 基于java的SpringBoot/SSM+Vue+uniapp的大学生学业预警和警告平台的详细设计和实现(源码+lw+部署文档+讲解等)
  • 别再焦虑了!6款实测有效的降ai工具推荐,学姐手把手教你降低ai率!
  • 孩子近视的“真凶”不是手机,也不是电视,而是父母都不在意的它
  • 拒绝智商税!6款实测有效的降ai工具推荐,保姆级手把手教你降低ai率!
  • Item23--宁以 non-member、non-friend 替换 member 函数
  • 别花冤枉钱!6款实测有效的降ai工具推荐,0基础手把手教你降低ai率!
  • 无金融背景想入行?2025年靠这几张AI证书实现转行突破
  • 电池管理系统BMS
  • 算法日记专题:位运算II( 只出现一次的数字I II III 面试题:消失的两个数字 比特位计数)
  • 【2025终极测评】10款常见降AI率工具大汇总(含0元免费降AI版本)
  • Item22--将成员变量声明为 private
  • Item22--将成员变量声明为 private