使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已 经为我们提供了这样一个功能。
![点击图片可在新窗口打开](https://i-blog.csdnimg.cn/blog_migrate/b6d71aa4becfe5f5e725b0d219d93c91.gif)
LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初 始记录行的偏移量是 0(而不是 1): 为了与 PostgreSQL 兼容,MySQL 也支持句法: LIMIT # OFFSET #。
![点击图片可在新窗口打开](https://i-blog.csdnimg.cn/blog_migrate/b1a79564f60aee0b96fce26c10b4bf0d.gif)
![点击图片可在新窗口打开](https://i-blog.csdnimg.cn/blog_migrate/677b04666fbe4aa7ccaa3115dcf78e50.gif)
![点击图片可在新窗口打开](https://i-blog.csdnimg.cn/blog_migrate/adde609103107894cee28e39dfc4bcf6.gif)
![点击图片可在新窗口打开](https://i-blog.csdnimg.cn/blog_migrate/0e8be56760e310a0f0fcab033970ed3f.gif)
![点击图片可在新窗口打开](https://i-blog.csdnimg.cn/blog_migrate/6dbed00f35b48d00a3e8bedb45665a42.gif)
![点击图片可在新窗口打开](https://i-blog.csdnimg.cn/blog_migrate/fce46d2f7427116749336eb93cd7008b.gif)
![点击图片可在新窗口打开](https://i-blog.csdnimg.cn/blog_migrate/c8c2cf94385923ca6c26322fe07b17fc.gif)
![点击图片可在新窗口打开](https://i-blog.csdnimg.cn/blog_migrate/a448ea425282bcd73a170cb4fd005a07.gif)
![点击图片可在新窗口打开](https://i-blog.csdnimg.cn/blog_migrate/e91918e4fc701f7e12d348903c34222d.gif)
实例:
mysql> use sppeivan;
Database changed
mysql> select * from employee; // 返回所有结果
+------------+------------+--------+-------------+
| username | password | gender | cellphone |
+------------+------------+--------+-------------+
| ewrew | erewr | MAN | 13618889076 |
| ewrwerw32r | 324324 | MAN | 13618889076 |
| grrrrr | r44343 | WOMAN | 13618889076 |
| pansong | erewrwe | MAN | 13618889076 |
| ret43t43t | 43t43 | MAN | 13618889076 |
| ret44t4 | r4tgr | WOMAN | 13618889076 |
| tttt | 4et | WOMAN | 13618889076 |
| wr34r | retre | MAN | 13618889076 |
| xxx | safe | MAN | 13618889076 |
| hhh | ewrwer | MAN | 13618889076 |
| hg | 6574326543 | MAN | 13618889076 |
| ps | ewrwe | MAN | 13618889076 |
| zhu | werew | MAN | 13618889076 |
+------------+------------+--------+-------------+
13 rows in set (0.01 sec)
mysql> select * from employee limit 3 7;
ERROR 1064 (42000): You have an error in your SQL syntax
corresponds to your MySQL server version for the right s
line 1
mysql> select * from employee limit 3, 7; // 返回4-11行
+-----------+----------+--------+-------------+
| username | password | gender | cellphone |
+-----------+----------+--------+-------------+
| pansong | erewrwe | MAN | 13618889076 |
| ret43t43t | 43t43 | MAN | 13618889076 |
| ret44t4 | r4tgr | WOMAN | 13618889076 |
| tttt | 4et | WOMAN | 13618889076 |
| wr34r | retre | MAN | 13618889076 |
| xxx | safe | MAN | 13618889076 |
| hhh | ewrwer | MAN | 13618889076 |
+-----------+----------+--------+-------------+
7 rows in set (0.00 sec)
mysql> select * from employee limit 3,-1; // 错误语法
ERROR 1064 (42000): You have an error in your SQL syntax
corresponds to your MySQL server version for the right s
t line 1
mysql> select * from employee limit 3,1; // 返回第4行
+----------+----------+--------+-------------+
| username | password | gender | cellphone |
+----------+----------+--------+-------------+
| pansong | erewrwe | MAN | 13618889076|
+----------+----------+--------+-------------+
1 row in set (0.00 sec)
mysql> select * from employee limit 3; // 返回前3行
+------------+----------+--------+-------------+
| username | password | gender | cellphone |
+------------+----------+--------+-------------+
| ewrew | erewr | MAN | 13618889076 |
| ewrwerw32r | 324324 | MAN | 13618889076 |
| grrrrr | r44343 | WOMAN | 13618889076 |
+------------+----------+--------+-------------+
3 rows in set (0.00 sec)
mysql> select * from employee limit 10; // 返回前10行
+------------+----------+--------+-------------+
| username | password | gender | cellphone |
+------------+----------+--------+-------------+
| ewrew | erewr | MAN | 13618889076 |
| ewrwerw32r | 324324 | MAN | 13618889076 |
| grrrrr | r44343 | WOMAN | 13618889076 |
| pansong | erewrwe | MAN | 13618889076 |
| ret43t43t | 43t43 | MAN | 13618889076 |
| ret44t4 | r4tgr | WOMAN | 13618889076 |
| tttt | 4et | WOMAN | 13618889076 |
| wr34r | retre | MAN | 13618889076 |
| xxx | safe | MAN | 13811588469 |
| hhh | ewrwer | MAN | 13618889076 |
+------------+----------+--------+-------------+
10 rows in set (0.00 sec)
mysql> select * from employee limit 9,1; // 返回第10行
+----------+----------+--------+-------------+
| username | password | gender | cellphone |
+----------+----------+--------+-------------+
| hhh | ewrwer | MAN | 13816668468 |
+----------+----------+--------+-------------+
1 row in set (0.00 sec)