From the MySQL 5.5 specification:
The LIMIT
clause can be used to
constrain the number of rows returned
by the SELECT
statement. LIMIT
takes
one or two numeric arguments, which
must both be nonnegative integer
constants, with these exceptions:
- Within prepared statements,
LIMIT
parameters can be specified using ?
placeholder markers.
- Within stored programs,
LIMIT
parameters can be specified using
integer-valued routine parameters or local variables as of MySQL 5.5.6.
So, inside a stored procedure, the following would work:
DECLARE offset bigint
SELECT pagenr * 10 INTO offset FROM pages where id = 3;
SELECT * FROM table1 LIMIT offset, 10;
Otherwise, you'll need to precompute the value and pass it in via the query. You should already know the page size and page number, so this shouldn't be difficult.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…