The LIMIT clause can be used to constrain the number of rowsreturned by the SELECT statement.app
LIMIT takes one or two numeric arguments,which must both be nonnegative integer constants, with these exceptions:ide
limit後面能夠跟1或2個×××參數,必須是非負整數常量。ui
Within prepared statements, LIMIT parameters can be specified using? placeholder markers.spa
在預編譯語句中,limit參數可以使用?佔位符。ip
Within stored programs, LIMIT parameters can be specified usinginteger-valued routineci
parameters or local variables.it
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):io
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 largetable
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; SET@numrows=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;