最近遇到這樣的問題,在MySQL的預存程序中,遊標操作時,需要執行一個conitnue的操作.眾所周知,MySQL中的遊標迴圈操作常用的有三種,LOOP,REPEAT,WHILE.三種迴圈,方式大同小異.以前從沒用過,所以記下來,方便以後查閱.
1.REPEAT
| 代碼如下 |
複製代碼 |
| REPEAT Statements; UNTIL expression END REPEAT demo DECLARE num INT; DECLARE my_string VARCHAR(255); REPEAT SET my_string =CONCAT(my_string,num,','); SET num = num +1; UNTIL num <5 END REPEAT;2.WHILE WHILE expression DO Statements; END WHILE demo DECLARE num INT; DECLARE my_string VARCHAR(255); SET num =1; SET str =''; WHILE num < span>10DO SET my_string =CONCAT(my_string,num,','); SET num = num +1; END WHILE;3.LOOP(這裡面有非常重要的ITERATE,LEAVE) DECLARE num INT; DECLARE str VARCHAR(255); SET num =1; SET my_string =''; loop_label: LOOP IF num <10THEN LEAVE loop_label; ENDIF; SET num = num +1; IF(num mod3)THEN ITERATE loop_label; ELSE SET my_string =CONCAT(my_string,num,','); ENDIF; END LOOP; |
PS:可以這樣理解ITERATE就是我們程式中常用的contiune,而ITERATE就是break.當然在MySQL預存程序,需要迴圈結構有個名稱,其他都是一樣的.
關於:mysql 預存程序中遊標與多遊標執行個體