我有查询
SELECT *
LIMIT 3, (6 - 3)
Wchich返回:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(6 - 3)' at line 2
我基本上想从第三行中选择6行*
,在MSSQL中是WHERE RowNumber BETWEEN 3 and 6
,但动态地知道:from
和:size
的:from
和:to
参数
在这种情况下使用OFFSET
SELECT name
FROM your_db
ORDER BY your_column DESC
LIMIT 10 OFFSET 10
LIMIT子句可用于约束SELECT语句返回的行数。LIMIT接受一个或两个数字参数,这两个参数都必须是非负整数常量。
基本上,如果你不在存储过程或准备好的语句中,你就不能这样做
- 在准备好的语句中,LIMIT参数可以使用?占位符标记
- 在存储的程序中,可以使用指定LIMIT参数整数值例程参数或局部变量
因此,在存储过程中,以下操作将起作用:
declare from_row bigint;
declare to_row bigint;
SELECT name
FROM your_db
ORDER BY your_column DESC
LIMIT from_row OFFSET (to_row-from_row);