The LIMIT clause can be used to constrain the number of rowsreturned by the SELECT statement.
LIMIT takes one or two numeric arguments,which must both be nonnegative integer constants, with these exceptions:
limit后面可以跟1或2个整形参数,必须是非负整数常量。
Within prepared statements, LIMIT parameters can be specified using? placeholder markers.
在预编译语句中,limit参数可使用?占位符。
Within stored programs, LIMIT parameters can be specified usinginteger-valued routine
parameters or local variables.
With two arguments, the first argumentspecifies the offset of the first row to return, and the second specifies themaximum number of rows to return. The offset of theinitial row is 0 (not 1):
SELECT * FROM tbl LIMIT5,10; # Retrieve rows 6-15
To retrieve all rows from a certain offsetup to the end of the result set, you can use some large
number for the second parameter. This statement retrieves all rows from the 96th row to thelast:
SELECT * FROM tbl LIMIT95,18446744073709551615;
With one argument, the value specifies thenumber of rows to return from the beginning of the result set:
SELECT * FROM tbl LIMIT5; # Retrieve first 5 rows,返回前5行
In other words, LIMIT row_count isequivalent to LIMIT 0, row_count.
For prepared statements, you can useplaceholders. The following statements will return one row
from the tbl table:
SET @a=1;
PREPARE STMT FROM ‘SELECT* FROM tbl LIMIT ?‘;
EXECUTE STMT USING @a;
The following statements will return thesecond to sixth row from the tbl table:
SET @skip=1; [email protected]=5;
PREPARE STMT FROM ‘SELECT* FROM tbl LIMIT ?, ?‘;
EXECUTE STMT USING @skip,@numrows;
For compatibility with PostgreSQL, MySQLalso supports the LIMIT row_count OFFSET offset
syntax.
If LIMIT occurs within a subquery and alsois applied in the outer query, the outermost LIMIT takes
precedence. For example, the followingstatement produces two rows, not one:
(SELECT ... LIMIT 1) LIMIT 2;