1. 程式人生 > 其它 >MySQL儲存過程中LOOP,REPEAT,WHILE.三種迴圈跳出和繼續操作示例

MySQL儲存過程中LOOP,REPEAT,WHILE.三種迴圈跳出和繼續操作示例

技術標籤:mysql

MySQL儲存過程中游標迴圈的跳出和繼續操作示例

MySQL中的遊標迴圈操作常用的有三種,LOOP,REPEAT,WHILE.三種迴圈
1.REPEAT

DELIMITER $$
CREATE PROCEDURE `procedure_date_time_time360`()
BEGIN
	-- 自定義變數
	DECLARE i_int INT DEFAULT(1);
	-- 設定批量提交
	SET autocommit = 0;
		REPEAT
			insert into `date_time` (`date_time`) values (DATE_SUB(CURDATE(
),INTERVAL i_int day)); SET i_int = i_int +1; UNTIL i_int >360 END REPEAT; COMMIT; -- 設定提交 SET autocommit = 1; END $$ DELIMITER;

2.WHILE

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;

可以這樣理解ITERATE就是我們程式中常用的contiune,而ITERATE就是break.當然在MySQL儲存過程,需要迴圈結構有個名稱,其他都是一樣的.
官方文件http://dev.mysql.com/doc/refman/5.0/en/loop.html