MySQL WHILE和LOOP和REPEAT循環的用法區別 MySQL三種循環的區別 MySQL循環使用方法
一、MySQL循環概述
MySQL中有三種循環,分別是 WHILE , REPEAT , LOOP (據說還有 goto),不可單獨使用,主要用於 存儲過程 PROCEDURE 和 函數 FUNCTION 中。
二、WHILE 循環
1、語法: WHILE condition DO doSomething END WHILE ;
2、說明: condition 條件滿足情況下,則執行循環體內容,不滿足,則結束循環。(如:2>1,滿足;1<2,不滿足。) --- 先判斷,後執行。
3、示例: 創建 while 循環的存儲過程 pro_while
DROP PROCEDURE IF EXISTS pro_while ;
CREATE PROCEDURE pro_while()
BEGIN
DECLARE sum INT DEFAULT 0 ;
WHILE sum < 100 DO
INSERT INTO `chapter`.`batch` (`id`, `name`, `age`)
VALUES (CONCAT(sum,''),CONCAT('while',sum) , sum);
SET sum = sum + 1;
END WHILE ;
END;
4、調用存儲過程: CALL pro_while();
三、REPEAT 循環
1、語法: REPEAT doSomething UNTIL condition END REPEAT ;
2、說明:doSomething 先執行相關操作 ,再判斷是否滿足條件,滿足,結束循環。(和WHILE循環相反) --- 先執行,後判斷。
3、示例:創建 repeat 循環的函數 fun_repeat
DROP FUNCTION IF EXISTS fun_repeat ;
CREATE FUNCTION fun_repeat() RETURNS INT
BEGIN
DECLARE sum INT DEFAULT 1000 ;
REPEAT
INSERT INTO `chapter`.`batch` (`id`, `name`, `age`)
VALUES (CONCAT(sum,''),CONCAT('repeat',sum) , sum);
SET sum = sum + 1;
UNTIL sum > 1100 END REPEAT ; -- 滿足條件結束循環
RETURN 1;
END;
4、執行函數: SELECT fun_repeat();
四、LOOP 循環
1、語法:
loop_name : LOOP
IF condition THEN
LEAVE loop_name ;
END IF;
doSomething
END LOOP;
2、說明:
- loop_name 爲循環名字,自定義,不可用關鍵字。
- doSomething 執行的相關操作。
- condition 滿足條件,則結束循環。--- 先判斷,後執行。
3、示例:創建 loop 循環的存儲過程 pro_loop
DROP PROCEDURE IF EXISTS pro_loop ;
CREATE PROCEDURE pro_loop()
BEGIN
DECLARE sum int DEFAULT 10000 ;
loop_sums : LOOP -- 【開始】loop 名字,自定義
IF sum > 10100 THEN
LEAVE loop_sums ; -- 滿足條件,則結束循環
END IF;
INSERT INTO `chapter`.`batch` (`id`, `name`, `age`)
VALUES (CONCAT(sum,''),CONCAT('loop',sum) , sum);
SET sum = sum + 1;
END LOOP ; -- 【結束】
END ;
4、調用存儲過程: CALL pro_loop();
五、總結
1、WHILE 循環,先判斷,後執行。滿足條件,執行,執行循環。
2、REPEAT 循環,先執行,後判斷。滿足條件,不執行,結束循環。
3、LOOP 循環,先執行,後判斷。滿足條件,不執行,結束循環。
4、當條件爲false時,REPEAT循環也能執行一次,類似於 java中的 do {} while (condition); 循環; 而 WHILE、LOOP 循環無法執行。
5、以上爲本人自己總結的,若有失誤,歡迎指正,感謝! ^_^。
瞭解更多...
MyBatis調用存儲過程,MyBatis調用函數的使用方法
MySQL WHILE和LOOP和REPEAT循環的用法區別 MySQL三種循環的區別 MySQL循環使用方法