Stored procedures mysql存储过程:在limit语句中使用声明的变量返回错误
我有以下代码:Stored procedures mysql存储过程:在limit语句中使用声明的变量返回错误,stored-procedures,mysql,limit,Stored Procedures,Mysql,Limit,我有以下代码: delimiter ; DROP PROCEDURE IF EXISTS ufk_test; delimiter // CREATE PROCEDURE ufk_test(IN highscoreChallengeId INT UNSIGNED) BEGIN DECLARE vLoopOrder INT UNSIGNED DEFAULT 5; DECLARE vLoopLimit INT UNSIGNED DEFAULT 10; select * from fb_user LI
delimiter ;
DROP PROCEDURE IF EXISTS ufk_test;
delimiter //
CREATE PROCEDURE ufk_test(IN highscoreChallengeId INT UNSIGNED)
BEGIN
DECLARE vLoopOrder INT UNSIGNED DEFAULT 5;
DECLARE vLoopLimit INT UNSIGNED DEFAULT 10;
select * from fb_user LIMIT vLoopOrder,vLoopLimit;
END//
delimiter ;
Mysql返回以下错误:
ERROR 1064 (42000): 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 'vLoopOrder,vLoopLimit;
END' at line 11
似乎我不能在LIMIT语句中使用声明的变量。有没有其他办法克服这个问题
当然,这是一个简单的例子,我可以把静态数字放在这里,但我需要知道,是否有可能以任何方式使用任何类型的有限制变量
谢谢我用的是:
SET @s = CONCAT('SELECT * FROM table limit ', vLoopOrder ', ', vLoopLimit);
PREPARE stmt1 FROM @s;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;
我用的是:
SET @s = CONCAT('SELECT * FROM table limit ', vLoopOrder ', ', vLoopLimit);
PREPARE stmt1 FROM @s;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;