mysql預存程序中的循環語句有三種:1、WHILE循環語句,語法「WHILE 條件表達式DO 循環語句END WHILE」;2、REPEAT循環語句,語法「REPEAT 循環語句UNTIL 條件表達式END REPEAT」;3、LOOP循環語句,語法「[begin_label:] LOOP 條件與循環語句列表END LOOP [end_label]」。
本教學操作環境:windows7系統、mysql8版本、Dell G3電腦。
MySQL提供了一個循環語句,讓您可以根據條件重複執行一段SQL程式碼。有三種循環語句在MySQL: WHILE,REPEAT 和LOOP。
WHILE循環
WHILE語句的語法如下:
WHILE expression DO statements END WHILE
WHILE 循環檢查expression
在每次迭代的開始。如果expression
評估為TRUE
,MySQL將在評估statements
之間執行 WHILE
,END WHILE
#直到expression
評估為止FALSE
。 WHILE 迴圈稱為預測試循環,因為它在statements
執行之前檢查表達式。
以下流程圖說明了WHILE循環語句:
#以下是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 ;
#在test_mysql_while_loop上面的預存程序中:
首先,我們str 重複建立字串,直到x 變數的值 大於5。
然後,我們使用SELECT語句顯示最終字串。
請注意,如果我們不初始化 x變量,則其預設值為NULL。因此,WHILE循環語句中的條件始終是TRUE 並且您將具有無限循環,這不是期望的。
我們來測試一下test_mysql_while_loop預存程序:
CALL test_mysql_while_loop();
輸出結果:
##REPEAT循環
REPEAT 迴圈語句的語法如下:REPEAT statements UNTIL expression END REPEAT首先,MySQL執行
statements,然後評估
expression。如果
expression評估為
FALSE,則MySQL
statements 重複執行直到
expression 評估為止TRUE。
expression 執行後檢查
statements,所以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 ;注意UNTIL 表達式中沒有分號(;)。
CALL mysql_test_repeat_loop();輸出結果:
#LOOP,LEAVE和ITERATE語句
有兩個語句可讓您控制迴圈:DELIMITER $$ DROP PROCEDURE IF EXISTS test_mysql_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 $$ DELIMITER ;測試一下:
call test_mysql_loop();在這個範例中,
mysql影片教學】
以上是mysql預存程序中的循環語句有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!