首页 > 编程笔记 > MySQL笔记 阅读:44

MySQL LIMIT的用法(附带实例)

MySQL 中,SELECT 返回所有匹配的行,有可能是表中所有的行,若仅需要返回第一行或者前几行,可使用 LIMIT 关键字。

LIMIT 关键字的基本语法格式如下:
LIMIT [位置偏移量,] 行数

为了方便演示 LIMIT 的用法,需要往数据表插入如下数据:
mysql> INSERT INTO fruits (f_id, s_id, f_name, f_price)
       VALUES('a1', 101,'apple',5.2),
       ('b1',101,'blackberry', 10.2),
       ('bs1',102,'orange', 11.2),
       ('bs2',105,'melon',8.2),
       ('t1',102,'banana', 10.3),
       ('t2',102,'grape', 5.3),
       ('o2',103,'coconut', 9.2),
       ('c0',101,'cherry', 3.2),
       ('a2',103, 'apricot',2.2),
       ('l2',104,'lemon', 6.4),
       ('b2',104,'berry', 7.6),
       ('m1',106,'mango', 15.7),
       ('m2',105,'xbabay', 2.6),
       ('t4',107,'xbababa', 3.6),
       ('m3',105,'xxtt', 11.6),
       ('b5',107,'xxxx', 3.6);

【实例 1】显示表 fruits 中的前 4 行记录,SQL 语句如下:
SELECT * From fruits LIMIT 4;
查询结果如下:
+------+------+------------+---------+
| f_id | s_id | f_name     | f_price |
+------+------+------------+---------+
| a1  |  101  | apple      |   5.20  |
| a2  |  103  | apricot    |   2.20  |
| b1  |  101  | blackberry |  10.20  |
| b2  |  104  | berry      |   7.60  |
+------+------+------------+---------+
由于该语句没有指定返回记录的“位置偏移量”参数,因此显示结果从第一行开始。又因为“行数”参数为 4,所以返回的结果为表中的前 4 行记录。

【实例 2】在表 fruits 中,使用 LIMIT 子句,返回从第 5 条记录开始的行数长度为 3 的记录,SQL 语句如下:
SELECT * From fruits LIMIT 4, 3;
查询结果如下:
+------+------+--------+---------+
| f_id | s_id | f_name | f_price |
+------+------+--------+---------+
| b5   |  107 | xxxx  |    3.60  |
| bs1  |  102 | orange|   11.20  |
| bs2  |  105 | melon |    8.20  |
+------+------+--------+---------+
第一个数字“4”表示从第 5 行开始(位置偏移量从 0 开始,第 5 行的位置偏移量为 4),第二个数字 3 表示返回 3 行记录。因此,该语句返回从第 5 条记录行开始之后的 3 行记录。

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

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

相关文章