首页 > 代码库 > MySQL Select Limit

MySQL Select Limit

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后面可以跟12个整形参数,必须是非负整数常量。

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; 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;


本文出自 “90SirDB” 博客,请务必保留此出处http://90sirdb.blog.51cto.com/8713279/1916351

MySQL Select Limit