如何在MySQL中动态分配LIMIT?

时间:2014-10-01 11:30:35

标签: mysql sql

我有查询

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

我基本上想要从MS-3 *中选择第3行中的6行WHERE RowNumber BETWEEN 3 and 6,但动态地了解:from:to参数的实例:from:size

1 个答案:

答案 0 :(得分:1)

在这种情况下使用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);