试图在MySQL中使用limit变量

时间:2015-10-25 11:16:08

标签: mysql

我正在尝试使用此代码在MYSQL中使用LIMIT和变量。当我使用LIMIT的简单数字时,它可以正常工作,但是当我使用变量时它就不起作用了。

SET @increment:=9;
SET @number:=1;
SET @end:=10*@number;
SET @start:=@end-@increment;

SELECT name, detail FROM tab1 LIMIT @start, @end;

当我使用下面的代码(无变量)时,它可以正常工作:

SELECT name, detail FROM tab1 LIMIT 0,10;

enter image description here

2 个答案:

答案 0 :(得分:0)

值必须保持不变。

根据规范:

  

LIMIT子句可用于约束SELECT语句返回的行数。 LIMIT需要一个或两个数字参数,它们都必须是非负整数常量。

https://dev.mysql.com/doc/refman/5.5/en/select.html

答案 1 :(得分:0)

我正在以这种方式使用。也许它会帮助你。

SET @increment:=4;
SET @number:=1;
SET @end:=5*@number;
SET @start:=@end-@increment;


PREPARE stmt FROM 'SELECT @i := total, user FROM logintable LIMIT ?,?';
EXECUTE stmt USING @start, @end;

SELECT @i AS result;