本文主要介绍SQL(Structured Query Language)中LIMIT子句/关键字的相关知识,同时通过用法示例介绍LIMIT子句的常见用法。
说明:本文的用法示例是面向MySQL数据库的。
1 概述
SQL中LIMIT子句用于限制由SELECT语句返回的数据数量。
2 常见用法
2.1 限制查询结果返回数量
可以使用LIMIT关键字限制查询结果的返回数量。
在未使用LIMIT限制时,查询结果如下:
mysql> SELECT * FROM mount_info;
+----------+------------+---------+
| mount_id | mount_name | role_id |
+----------+------------+---------+
| 1 | horse | 1 |
| 2 | sheep | 4 |
| 3 | sheep | 2 |
+----------+------------+---------+
3 rows in set (0.00 sec)
mysql>
使用LIMIT限制后,查询结果如下:
mysql> SELECT * FROM mount_info LIMIT 1;
+----------+------------+---------+
| mount_id | mount_name | role_id |
+----------+------------+---------+
| 1 | horse | 1 |
+----------+------------+---------+
1 row in set (0.00 sec)
mysql>
2.2 偏移量+条数限制
可以使用LIMIT实现查找结果的“偏移量+条数限制”,用法为“LIMIT offset,limitnum”。
未使用LIMIT子句之前,查询结果如下:
mysql> select * from roles;
+---------+------------+----------+
| role_id | occupation | camp |
+---------+------------+----------+
| 1 | Mage | alliance |
| 2 | paladin | alliance |
| 3 | rogue | Horde |
| 4 | Priest | alliance |
| 5 | Shaman | Horde |
| 6 | warrior | alliance |
| 7 | Warlock | Horde |
| 8 | Hunter | Horde |
+---------+------------+----------+
8 rows in set (0.01 sec)
例如,想输出查询结果中第1行开始、共3条内容,则使用“LIMIT 0,3”,命令及结果信息如下:
mysql> select * from roles LIMIT 0,3;
+---------+------------+----------+
| role_id | occupation | camp |
+---------+------------+----------+
| 1 | Mage | alliance |
| 2 | paladin | alliance |
| 3 | rogue | Horde |
+---------+------------+----------+
3 rows in set (0.01 sec)
mysql>
想输出查询结果中第4行开始、共2条内容,则使用“LIMIT 3,2”,命令及结果信息如下:
mysql> select * from roles LIMIT 3,2;
+---------+------------+----------+
| role_id | occupation | camp |
+---------+------------+----------+
| 4 | Priest | alliance |
| 5 | Shaman | Horde |
+---------+------------+----------+
2 rows in set (0.01 sec)
mysql>
说明:
- “LIMIT offset,limitnum”中,offset的值从0开始,0表示从查询结果的第1行开始输出;
- LIMIT子句的这个功能,常见于“网页分页+每页显示最大数”的应用场景。