zoukankan      html  css  js  c++  java
  • MySQL的LOOP, LEAVE 和ITERATE语句(类似Continue、Break的写法)

    和REPEAT和while语句不同,LOOP、LEAVE、ITERATE更像其他编程语言中的goto语句。 LOOP要设定一个label指定循环的开始位置,而LEAVE则像其他语言中的Break会离开LOOP指定的块,iterate则像其他语言中的Continue会再次回到LOOP开始的语句。

    如下是一个使用LOOP语句的mysql存储过程:

     DELIMITER $$
     DROP PROCEDURE IF EXISTS LOOPLoopProc$$
     CREATE PROCEDURE LOOPLoopProc()
           BEGIN
                   DECLARE x  INT;
                   DECLARE str  VARCHAR(255);
                   SET x = 1;
                   SET str =  '';
                   loop_label:  LOOP
                               IF  x > 10 THEN
                                   LEAVE  loop_label;
                               END  IF;
                               SET  x = x + 1;
                               IF  (x mod 2) THEN
                                   ITERATE  loop_label;
                               ELSE
                                   SET  str = CONCAT(str,x,',');
                               END  IF;
    
                   END LOOP;    
                   SELECT str;
           END$$
     DELIMITER ;

    在上面存储过程中我们首先在LOOP语句开始前声明了一个loop_label,然后在if语句总判断变量x是否大于10,如果大于10会使用LEAVE语句退出循环,而如果x是奇数时则会回到循环开始继续执行,这有点像continue语句,否则对str执行concat操作,并进入下一次循环。

    
    
  • 相关阅读:
    分解质因数
    大素数测试和分解质因数
    快速幂
    欧拉函数
    素数
    gcd,lcm,ext_gcd,inv
    凸包问题 poj 2187
    map的 简单用法
    判断线段是否在园内
    2-sat 问题
  • 原文地址:https://www.cnblogs.com/lrl45/p/6041437.html
Copyright © 2011-2022 走看看