zoukankan      html  css  js  c++  java
  • 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;
  • 相关阅读:
    上传图片到PHP服务器
    关于对象、数字、地理位置使用上需要注意的地方
    apiCloud app调用浏览器打开网页的方法
    APICloud开发小技巧(一)
    JavaScript数组操作函数
    超实用的JavaScript代码段
    JSESSIONID的简单说明
    数据库锁表及阻塞的原因和解决办法
    Spring详解------事务管理
    HttpServletrequest 与HttpServletResponse总结
  • 原文地址:https://www.cnblogs.com/yuezc/p/12937228.html
Copyright © 2011-2022 走看看