Heim  >  Artikel  >  Datenbank  >  mysql while,loop,repeat循环,符合条件跳出循环_MySQL

mysql while,loop,repeat循环,符合条件跳出循环_MySQL

PHP中文网
PHP中文网Original
2016-05-27 13:46:372591Durchsuche

mysql while,loop,repeat循环,符合条件跳出循环_MySQL

1、while循环

 

DELIMITER $$
DROP PROCEDURE IF EXISTS `sp_test_while`$$
CREATE  PROCEDURE `sp_test_while`(
 IN p_number INT, #要循环的次数
 IN p_startid INT #循环的其实值
)
BEGIN  
DECLARE v_val INT DEFAULT 0;  
SET v_val=p_startid;
outer_label:  BEGIN  #设置一个标记
WHILE v_val<=p_number DO  
    SET v_val=v_val+1;  
    IF(v_val=100)THEN
        LEAVE  outer_label;  #满足条件,终止循环,跳转到end outer_label标记
    END IF;
END WHILE;  
SELECT &lsquo;我是while外,outer_label内的SQL&lsquo;; 
#由于这句SQL在outer_label代码块内,所以level后,这句SQL将不会执行;
#只要是在outer_label代码块内 任意位置 Leave outer_label,那么Leave后的代码将不再执行
END outer_label;   
 SELECT CONCAT(&lsquo;test&lsquo;,v_val) AS tname;
END$$

DELIMITER ;

CALL sp_test_while(1000,0);

 

2、loop 循环

 

DELIMITER $$

DROP PROCEDURE IF EXISTS `sp_testloop`$$
CREATE  PROCEDURE `sp_testloop`(
 IN p_number INT, #要循环的次数
 IN p_startid INT #循环的其实值
)
BEGIN  
    DECLARE v_val INT DEFAULT 0;  
    SET v_val=p_startid;

    loop_label:  LOOP   #循环开始
        SET v_val=v_val+1; 
         
        IF(v_val>p_number)THEN
            LEAVE  loop_label;  #终止循环
        END IF;
    END LOOP; 
     SELECT CONCAT(&lsquo;testloop_&lsquo;,v_val) AS tname;
END$$

delimiter ;

CALL sp_testloop(1000,0);

 

 

3、repeat循环下载地址   

 

 

DELIMITER $$
DROP PROCEDURE IF EXISTS `sp_test_repeat`$$
CREATE  PROCEDURE `sp_test_repeat`(
 IN p_number INT, #要循环的次数
 IN p_startid INT #循环的其实值
)
BEGIN  
DECLARE v_val INT DEFAULT 0;  
SET v_val=p_startid;

 REPEAT  #repeat循环开始

    SET v_val=v_val+1; 
      until v_val>p_number #终止循环的条件,注意这里不能使用&lsquo;;&lsquo;分号,否则报错     
      
 END repeat; #循环结束 

 SELECT CONCAT(&lsquo;test&lsquo;,v_val) AS tname;
END$$

DELIMITER ;

CALL sp_test_repeat(1000,0);

 

以上就是mysql while,loop,repeat循环,符合条件跳出循环_MySQL的内容,更多相关内容请关注PHP中文网(www.php.cn)!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn