当前位置: 首页 > MySQL数据库

mysql中的limit怎么是使用

时间:2026-01-28 14:10:04

本教程操作环境:windows7系统、mysql8版本、Dell G3电脑。

当数据表中有上万条数据时,一次性查询出表中的全部数据会降低数据返回的速度,同时给数据库服务器造成很大的压力。这时就可以用 LIMIT 关键字来限制查询结果返回的条数。

LIMIT 是 MySQL 中的一个特殊关键字,用于指定查询结果从哪条记录开始显示,一共显示多少条记录。

LIMIT 关键字有 3 种使用方式,即指定初始位置、不指定初始位置以及与 OFFSET 组合使用。

指定初始位置

LIMIT 关键字可以指定查询结果从哪条记录开始显示,显示多少条记录。

LIMIT 指定初始位置的基本语法格式如下:

LIMIT 初始位置,记录数

其中,“初始位置”表示从哪条记录开始显示;“记录数”表示显示记录的条数。第一条记录的位置是 0,第二条记录的位置是 1。后面的记录依次类推。

注意:LIMIT 后的两个参数必须都是正整数。

例 1

在 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)

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

不指定初始位置

LIMIT 关键字不指定初始位置时,记录从第一条记录开始显示。显示记录的条数由 LIMIT 关键字指定。

LIMIT 不指定初始位置的基本语法格式如下:

LIMIT 记录数

其中,“记录数”表示显示记录的条数。如果“记录数”的值小于查询结果的总数,则会从第一条记录开始,显示指定条数的记录。如果“记录数”的值大于查询结果的总数,则会直接显示查询出来的所有记录。

例 2

显示 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 条记录,说明“LIMIT 4”限制了显示条数为 4。

例 3

显示 tb_students_info 表查询结果的前 15 行,SQL 语句和运行结果如下。

mysql> SELECT * FROM tb_students_info LIMIT 15;+----+--------+---------+------+------+--------+------------+| 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 ||  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 ||  9 | Thomas |       3 |   22 | M    |    178 | 2016-06-07 || 10 | Tom    |       4 |   23 | M    |    165 | 2016-08-05 |+----+--------+---------+------+------+--------+------------+10 rows in set (0.26 sec)

结果中只显示了 10 条记录。虽然 LIMIT 关键字指定了显示 15 条记录,但是查询结果中只有 10 条记录。因此,数据库系统就将这 10 条记录全部显示出来。

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

LIMIT和OFFSET组合使用

LIMIT 可以和 OFFSET 组合使用,语法格式如下:

LIMIT 记录数 OFFSET 初始位置

参数和 LIMIT 语法中参数含义相同,“初始位置”指定从哪条记录开始显示;“记录数”表示显示记录的条数。

例 4

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

mysql> SELECT * FROM tb_students_info LIMIT 5 OFFSET 3;+----+-------+---------+------+------+--------+------------+| 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)

由结果可以看到,该语句返回的是从第 4 条记录开始的之后的 5 条记录。即“LIMIT 5 OFFSET 3”意思是获取从第 4 条记录开始的后面的 5 条记录,和“LIMIT 3,5”返回的结果相同。


上一篇:mysql数据库中的初始密码是什么
下一篇:mysql中如何将日期转为时间戳
mysql limit
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器
  • 英特尔第五代 Xeon CPU 来了:详细信息和行业反应
  • 由于云计算放缓引发扩张担忧,甲骨文股价暴跌
  • Web开发状况报告详细介绍可组合架构的优点
  • 如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳
  • 美光在数据中心需求增长后给出了强有力的预测
  • 2027服务器市场价值将接近1960亿美元
  • 生成式人工智能的下一步是什么?
  • 分享在外部存储上安装Ubuntu的5种方法技巧
  • 全球数据中心发展的关键考虑因素
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器

    英特尔第五代 Xeon CPU 来了:详细信息和行业反应

    由于云计算放缓引发扩张担忧,甲骨文股价暴跌

    Web开发状况报告详细介绍可组合架构的优点

    如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳

    美光在数据中心需求增长后给出了强有力的预测

    2027服务器市场价值将接近1960亿美元

    生成式人工智能的下一步是什么?

    分享在外部存储上安装Ubuntu的5种方法技巧

    全球数据中心发展的关键考虑因素