mysql while循环中断等效

Posted

技术标签:

【中文标题】mysql while循环中断等效【英文标题】:mysql while loop Break equivalent 【发布时间】:2011-11-14 16:55:29 【问题描述】:

什么相当于 mysql 的 while 循环中的中断?

  WHILE (ctr < i)
  DO ......

    SET cnt = (SELECT COUNT(*) FROM temp_results WHERE result = "true");
    IF cnt > 0 THEN
      SELECT cnt;
      BREAK;
    END IF;

谢谢

【问题讨论】:

【参考方案1】:

知道了。

myloop: WHILE (ctr < i)
DO 
   …

   SET cnt = (SELECT COUNT(*) FROM temp_results WHERE result = "true");
   IF cnt > 0 THEN
      SELECT cnt;
      LEAVE myloop;
   END IF;
END WHILE myloop;

【讨论】:

我已经更新了这个例子。要使用 LEAVE 语句,我发现您需要在 END WHILE 语句上重复使用 myloop 标签。【参考方案2】:

您可能对REPEAT 循环感兴趣:

REPEAT  
    SET cnt = (SELECT COUNT(*) FROM temp_results WHERE result = "true");
UNTIL cnt > 0 
END REPEAT;

【讨论】:

这应该设置为正确的方式。从未听说过REPEAT,刚刚测试过,完美无瑕。谢谢@p.campbell

以上是关于mysql while循环中断等效的主要内容,如果未能解决你的问题,请参考以下文章

如何从while循环内的if条件中断while循环?

使用外部事件中断 while 循环

如何在while循环中手动中断光标?

检查 NoneType 的变量并中断 while 循环

在 WHILE 循环中中断关键字与变量

使用while循环时未触发中断ISR