语法说明
https://dev.mysql.com/doc/refman/8.2/en/select.html
在使用SELECT查询的时候,可以使用LIMIT子句,限制返回行的起始位置、最多返回多少行。
- LIMIT后面跟1个或者2个非负的整数参数,两种情况除外:
1)在prepared statements中,LIMIT 的参数可以使用占位符?
2)在存储过程中,LIMIT 的参数可以使用整数的参数、或者局部变量。 - 如果LIMIT后面跟2个参数,第1个参数表示返回的第一行的偏移,第2个参数表示最多返回多少行。注意,最初的第1行的偏移是0(不是1)。
- 如果LIMIT后面跟1个参数,表示从结果集的第1行开始最多返回多少行。
示例
例如,用user表来做测试,里边有3条记录:
查询没有使用LIMIT子句
使用SELECT * FROM user;
查询,没有使用LIMIT子句,3行全部返回:
使用LIMIT子句,只带1个参数
- 例如,使用
SELECT * FROM user LIMIT 1;
查询,限制从开始,最多只返回1条:
- 例如,使用
SELECT * FROM user LIMIT 2;
查询,限制从开始,最多只返回2条:
- 例如,使用
SELECT * FROM user LIMIT 4;
查询,限制从开始,最多只返回4条。但因为符合条件的记录数只有3条,所以结果返回了3条:
使用LIMIT子句,带两个参数
- 例如,使用
SELECT * FROM user LIMIT 0, 2;
限制从第1行开始,最多返回2行,结果返回了第1~2行:
- 使用
SELECT * FROM user LIMIT 1, 2;
限制从第2行开始,最多返回2行,结果返回了第2~3行:
- 使用
SELECT * FROM user LIMIT 0, 10;
限制从第1行开始,最多返回10行。但只有3行,所以就返回了3行: