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

Jon*_*han 2 mysql sql

我试图WHILE在MySQL v5.7中使用循环并不断收到语法错误。我还没有发现问题。根据文档,语法看起来正确。

我在这里找到了一个建议将语句包装在DELIMITER中的线程,但这也不起作用。代码是:

SET @counter = 1;

WHILE (@counter < 2) DO
    SELECT @counter;
    @counter = @counter + 1;
END WHILE
Run Code Online (Sandbox Code Playgroud)

错误消息是:

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

我想念什么?

Rub*_*_PH 5

据我记得,您不能像那样使用WHILE LOOP。您必须将其放入存储过程中,如下所示:

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