Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
试图在MySQL中对变量使用limit_Mysql - Fatal编程技术网

试图在MySQL中对变量使用limit

试图在MySQL中对变量使用limit,mysql,Mysql,我正在尝试将这段代码与一个变量一起在MYSQL中使用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, det

我正在尝试将这段代码与一个变量一起在MYSQL中使用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;

值必须是常量

根据规范:

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


我是这样使用的。也许对你有帮助

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;

那么如何通过variable从数据库中获取特定记录这应该是公认的答案,因为这是实现它的唯一方法。