使用 MySQL SELECT 语句时往往返回的是所有匹配的行,有些时候我们仅需要返回第一行或者前几行,这时候就需要用到 MySQL LIMT 子句。

基本的语法格式如下:

<LIMIT> [<位置偏移量>,] <行数>

LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。

第一个参数“位置偏移量”指示 MySQL 从哪一行开始显示,是一个可选参数,如果不指定“位置偏移量”,将会从表中的第一条记录开始(第一条记录的位置偏移量是 0,第二条记录的位置偏移量是 1,以此类推);第二个参数“行数”指示返回的记录条数。

显示 tb_students_info 表查询结果的前 4 行,输入的 SQL 语句和执行结果如下所示。

mysql> SELECT * FROM tb_students_info LIMIT 4;
+----+-------+---------+------+------+--------+------------+
| id | name  | dept_id | age  | sex  | height | login_date |
+----+-------+---------+------+------+--------+------------+
|  1 | Dany  |       1 |   25 | F    |    160 | 2015-09-10 |
|  2 | Green |       3 |   23 | F    |    158 | 2016-10-22 |
|  3 | Henry |       2 |   23 | M    |    185 | 2015-05-31 |
|  4 | Jane  |       1 |   22 | F    |    162 | 2016-12-20 |
+----+-------+---------+------+------+--------+------------+
4 rows in set (0.00 sec)

由结果可以看到,该语句没有指定返回记录的“位置偏移量”参数,显示结果从第一行开始,“行数”参数为 4,因此返回的结果为表中的前 4 行记录。

若指定返回记录的开始位置,则返回结果为从“位置偏移量”参数开始的指定行数,“行数”参数指定返回的记录条数。

在 tb_students_info 表中,使用 LIMIT 子句返回从第 4 条记录开始的行数为 5 的记录,输入的 SQL 语句和执行结果如下所示。

mysql> SELECT * FROM tb_students_info LIMIT 3,5;
+----+-------+---------+------+------+--------+------------+
| id | name  | dept_id | age  | sex  | height | login_date |
+----+-------+---------+------+------+--------+------------+
|  4 | Jane  |       1 |   22 | F    |    162 | 2016-12-20 |
|  5 | Jim   |       1 |   24 | M    |    175 | 2016-01-15 |
|  6 | John  |       2 |   21 | M    |    172 | 2015-11-11 |
|  7 | Lily  |       6 |   22 | F    |    165 | 2016-02-26 |
|  8 | Susan |       4 |   23 | F    |    170 | 2015-10-01 |
+----+-------+---------+------+------+--------+------------+
5 rows in set (0.00 sec)

由结果可以看到,该语句指示 MySQL 返回从第 4 条记录行开始的之后的 5 条记录,第一个数字“3”表示从第 4 行开始(位置偏移量从 0 开始,第 4 行的位置偏移量为 3),第二个数字 5 表示返回的行数。

所以,带一个参数的 LIMIT 指定从查询结果的首行开始,唯一的参数表示返回的行数,即“LIMIT n”与“LIMIT 0,n”等价。带两个参数的 LIMIT 可返回从任何位置开始的指定行数的数据。

返回第一行时,位置偏移量是 0。因此,“LIMIT 1,1”返回第 2 行,而不是第 1 行。

注意:MySQL 5.7 中可以使用“LIMIT 4 OFFSET 3”,意思是获取从第5条记录开始的后面的3条记录,和“LIMIT 4,3”返回的结果相同。

MySQL 限制查询结果的记录数相关推荐

  1. 高级查询(二)+php中文网,MySQL高级查询方法之记录查询

    欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 此文章主要向大家描述的是MySQL高级查询方法之记录查询的实际操作步骤,以及对其实际操作过程中要用到的代码的详细描述,以下 ...

  2. Oracle查询库中记录数大于2千万的所有表

    Oracle查询库中记录数大于2千万的所有表 假如当前用户拥有select any table权限,则可以使用下列sql语句: select table_name, num_rows from dba ...

  3. MySQL查询数据库表记录数

    mysql统计一个数据库里所有表的数据量,最近在做统计想查找一个数据库里基本所有的表数据量,数据量少的通过select count再加起来也是可以的,不过表的数据有点多,不可能一个一个地查.记得在Na ...

  4. mysql 获取下一条记录数,如何在MySQL中查询当前数据上一条和下一条的记录

    如果ID是主键或者有索引,可以直接查找: 方法一: 查询上一条记录的SQL语句(如果有其他的查询条件记得加上other_conditions以免出现不必要的错误): select * from tab ...

  5. Mongodb利用aggregation实现抽样查询(按记录数和时间)

    之前对mongodb不熟,但是项目要用,因为数据量比较大,并且领导要实现抽样查询,控制数据流量,所以自己研究了下,亲测可用,分享一下! 话不多说,上代码: 第一种方案:加自增主键,实现按记录数抽样 1 ...

  6. mysql如何查询某条记录在分页的第几页_分页插件的使用

    mybatis中首先要在配置文件中配置一些东西,配置sqlaMapconfig和mapper.xml,然后根据这些配置去创建一个会话工厂,再根据会话工厂创建会话,会话发出操作数据库的sql语句(作用是 ...

  7. mysql 查询不重复的值_在 MySQL 中查询不重复记录值的方法

    使用 WordPress 的过程中,我一直很好奇 WordPress 的一个功能,大家都知道在 WordPress 的编写文章的时候,可以自定义栏目,而这个自定义栏目的数据保存到 wp_postmet ...

  8. mysql 带条件取count记录数,SUM()函数按条件求和

    在做统计报表的时候,通常会用到一些复杂的统计功能,而不是简单的 count(*), sum(abc) 就可以的,这就用到了一些基于条件的统计功能. 带条件取count记录数 参考方法: 统计sub_t ...

  9. Hibernate DetachedCriteria方式分页查询返回总记录数

    最近在使用Hibernate进行分页查询的时候,发现Hibernate分页有一个瓶颈,就是只能访问查询对应的记录,并不能返回符合条件的总条数,网上给的很多策略都是再写一个方法,通过HQL查询总记录数, ...

最新文章

  1. mysql workbench kernelbase.dll_电脑出现kernelbase.dll错误的两种解决方法
  2. android界面怎么优化字符串,android应用性能优化
  3. hdu 5273(递推)
  4. P4316-绿豆蛙的归宿【数学期望】
  5. 六、区块链主流共识算法浅析
  6. ios6.0,程序为横屏,出现闪退
  7. baseline_如何安装和使用Microsoft Baseline Security Analyzer(MBSA)
  8. 奇虎360开源其日志搜索引擎,可处理百万亿级的数据
  9. 怎么测试软件的自动升级,欧姆龙编程软件怎么升级 自动更新步骤详解
  10. 印象笔记 网易云笔记 腾讯文档 对比
  11. TeamViewer 可信设备的信任管理
  12. oracle远程投毒漏洞复现,oracle TNS Listener远程投毒(CVE-2012-1675)漏洞分析、复现...
  13. Hive集合数据类型(STRUCK,MAP,ARRAY)
  14. P1967 货车运输( 最大生成树+LCA or Kruskal重构树)
  15. git clone出现fatal: unable to checkout working tree报错的解决办法
  16. java短信登录_JAVA短信验证登录
  17. TeamViewer轻松解决企业远程办公安全隐患
  18. ajax后台如何把对象转为json_Ajax向前后台传递json和转换
  19. sudo comand
  20. 怎么查询手机是否有维修记录

热门文章

  1. bp神经网络预测未来五年数据_预测 | 未来五年以太网收发器出货将达2.75亿只
  2. c语言中怎么暂停一个一个游戏,求助:最近在linux下用c语言写了一个贪吃蛇程序,有几个问题,第一:贪吃蛇怎么实现暂停,第二:有时候同时输入上下左右中的两个键就会直接游戏结束...
  3. foxmail邮件怎样打印日历
  4. CSS3 @media媒体查询 适配不同尺寸设备的响应式布局(清晰详解)
  5. 只考计算机知识吗,计算机二级只考一门吗?计算机二级考什么?
  6. MySQL建立多选一列表_如何实现自定义列表的多个item,的单选或多选
  7. exe解包和重新打包_Jira 批量提交问题 + 生成可执行文件exe
  8. Java 多线程 —— AQS 详解
  9. MySQL 基础 ———— SQL语句的执行顺序与 LIMIT 子句
  10. Apache工具包方法——Hex.encodeHexString(byte[] data)源码浅析