MySQL 5.7在简单的WHILE语句中找不到错误

时间:2017-09-16 02:46:31

标签: mysql sql

我试图在MySQL v5.7中使用public class CustomClass { public CustomClass(){} public MonoBehaviour getCreator() { //Access MonoBehaviour from the dictionary MonoBehaviour result; TestMono.classToMonoBehaviour.TryGetValue(this, out result); return result; } } 循环并不断收到语法错误。我还没能找到问题所在。根据{{​​3}},语法看起来是正确的。

我发现一个线程the documentation建议将语句包装在DELIMITER中,但这也不起作用。代码是:

WHILE

,错误信息为:

  

第22行的错误1064(42000):您的SQL语法出错;   检查与您的MySQL服务器版本对应的手册   正确的语法在' WHILE(@counter< 2)DO附近使用       SELECT @ counter'在第1行

我错过了什么?

2 个答案:

答案 0 :(得分:5)

据我记忆,你不能像那样使用WHILE LOOP。你必须把它放在一个存储过程中,如下所示:

CREATE PROCEDURE mysp()
BEGIN
    DECLARE counter int DEFAULT 1;
    WHILE counter < 2 DO
        SET counter = counter + 1;
    END WHILE;
END

答案 1 :(得分:2)

尝试以下代码。它在我的MySQL 5.7上成功运行

DELIMITER //

CREATE PROCEDURE mysp()
BEGIN
   DECLARE counter INT;
   SET counter = 1;

   label1: WHILE counter < 2 DO
     SELECT counter;
     SET counter = counter + 1;
   END WHILE label1;
END; //

DELIMITER ;