请告诉我这是怎么回事。它完全遵循5.5手册中的语法:

SET @RunID = 55;
REPEAT
SET @RunID = @RunID + 1;
UNTIL @RunID = 100
END REPEAT;


它总是告诉我在REPEAT中有语法错误。
我的疯狂猜测是,它可能与MySQL在Mac OS X上运行且我使用的客户端是Windows XP有关。行尾字符?

最佳答案

UNTIL问题。我想您要运行循环UNTIL RunID已达到100,而不仅仅是RunID为100 ...

尝试这个:

delimiter //
CREATE PROCEDURE dorepeat2(p1 INT)
BEGIN
  SET @RunID = p1;
  REPEAT
      SET @RunID = @RunID + 1;
    SELECT @RunID;
  UNTIL @RunID <= 100 END REPEAT;
END
//
CALL dorepeat2(55)//

关于mysql - 无法进行简单的MySQL REPEAT工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29703325/

10-13 00:58