MySQL LIMIT的用法(附带实例)
MySQL 中,SELECT 返回所有匹配的行,有可能是表中所有的行,若仅需要返回第一行或者前几行,可使用 LIMIT 关键字。
LIMIT 关键字的基本语法格式如下:
为了方便演示 LIMIT 的用法,需要往数据表插入如下数据:
【实例 1】显示表 fruits 中的前 4 行记录,SQL 语句如下:
【实例 2】在表 fruits 中,使用 LIMIT 子句,返回从第 5 条记录开始的行数长度为 3 的记录,SQL 语句如下:
带一个参数的 LIMIT 指定从查询结果的首行开始,唯一的参数表示返回的行数,即“LIMIT n”与“LIMIT 0,n”等价。带两个参数的 LIMIT 可以返回从任何一个位置开始的指定长度的行数。
LIMIT 关键字的基本语法格式如下:
LIMIT [位置偏移量,] 行数
- “位置偏移量”指示 MySQL 从哪一行开始显示,是一个可选参数,如果不指定“位置偏移量”,将会从表中的第一条记录开始(第一条记录的位置偏移量是 0,第二条记录的位置偏移量是 1,以此类推);
- “行数”指示返回的记录行数。
为了方便演示 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;”返回的结果相同。