MySQL的LOOP, LEAVE 和ITERATE語句(類似Continue、Break的寫法)


和REPEAT和while語句不同,LOOP、LEAVE、ITERATE更像其他編程語言中的goto語句。 LOOP要設定一個label指定循環的開始位置,而LEAVE則像其他語言中的Break會離開LOOP指定的塊,iterate則像其他語言中的Continue會再次回到LOOP開始的語句。

如下是一個使用LOOP語句的mysql存儲過程:

 DELIMITER $$
 DROP PROCEDURE IF EXISTS LOOPLoopProc$$ CREATE PROCEDURE LOOPLoopProc() 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 ;

在上面存儲過程中我們首先在LOOP語句開始前聲明了一個loop_label,然后在if語句總判斷變量x是否大於10,如果大於10會使用LEAVE語句退出循環,而如果x是奇數時則會回到循環開始繼續執行,這有點像continue語句,否則對str執行concat操作,並進入下一次循環。

 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM