• MySQL存储过程循环【7】


    MySQL提供循环语句,允许您根据条件重复执行一个SQL代码块。 MySQL中有三个循环语句:WHILEREPEATLOOP
    1、WHILE 循环
    DELIMITER $$
     DROP PROCEDURE IF EXISTS test_mysql_while_loop$$
     CREATE PROCEDURE test_mysql_while_loop()
     BEGIN
     DECLARE x  INT;
     DECLARE str  VARCHAR(255);
    
     SET x = 1;
     SET str =  '';
    
     WHILE x  <= 5 DO
     SET  str = CONCAT(str,x,',');
     SET  x = x + 1; 
     END WHILE;
    
     SELECT str;
     END$$
    DELIMITER ;

    2、REPEAT循环

    DELIMITER $$
     DROP PROCEDURE IF EXISTS mysql_test_repeat_loop$$
     CREATE PROCEDURE mysql_test_repeat_loop()
     BEGIN
     DECLARE x INT;
     DECLARE str VARCHAR(255);
    
     SET x = 1;
            SET str =  '';
    
     REPEAT
     SET  str = CONCAT(str,x,',');
     SET  x = x + 1; 
            UNTIL x  > 5
            END REPEAT;
    
            SELECT str;
     END$$
    DELIMITER ;

    3、LOOP,LEAVE和ITERATE语句

    有两个语句允许您用于控制循环:

    • LEAVE语句用于立即退出循环,而无需等待检查条件。LEAVE语句的工作原理就类似PHP,C/C++,Java等其他语言的break语句一样。
    • ITERATE语句允许您跳过剩下的整个代码并开始新的迭代。ITERATE语句类似于PHPC/C++Java等中的continue语句。

    MySQL还有一个LOOP语句,它可以反复执行一个代码块,另外还有一个使用循环标签的灵活性。

    以下是使用LOOP循环语句的示例。

    CREATE PROCEDURE test_mysql_loop()
     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;
  • 相关阅读:
    从零开始的HTML5之旅(三)
    2020年3月12日
    2020年3月14日
    错误There is no Action mapped for namespace / and action name—Struts2
    2014.05.06我在这里起航
    Test For Windows Live Writer
    点亮灯泡——JS实现
    windows phone中解决html乱码问题
    .net处理多线程
    Windows Store App之数据存储
  • 原文地址:https://www.cnblogs.com/yuezc/p/12937228.html
Copyright © 2020-2023  润新知