MySQL循環語句


  mysql常見的三種循環方式:while、repeat和loop循環。還有一種goto,不推薦使用。

1.while循環

 

-- 設置mysql分隔符為//,也就意味着,當遇到下一個//時,整體執行SQL語句
DELIMITER //

DROP PROCEDURE if EXISTS ‘test’;	# 如果存在test存儲過程則刪除
CREATE procedure test()	# 創建無參存儲過程,名稱為test
BEGIN
DECLARE i INT;	# 申明變量
SET i = 0;	# 變量賦值
WHILE i<5 DO # 結束循環的條件: 當i大於5時跳出while循環
INSERT INTO test VALUES(i+11,'test','20');	# 往test表添加數據
SET i = i+1;	# 循環一次,i加1
END WHILE;	# 結束while循環
SELECT * FROM test;	# 查看test表數據
END
//	# 結束定義語句
CALL test();	# 調用存儲過程
DELIMITER ;	# 重新將分隔符設置為;

 

 

 

2.repeat循環

DELIMITER //
DROP PROCEDURE IF EXISTS test; 
CREATE PROCEDURE test()
BEGIN
  DECLARE i INT;
  SET i = 0;
  REPEAT
    INSERT INTO test VALUES(i+11,'test','20');           # 往test表添加數據
    SET i = i + 1;                  			    # 循環一次,i加一
  UNTIL i > 10 END REPEAT;            			    # 結束循環的條件: 當i大於10時跳出repeat循環
  SELECT * FROM test;
END
//
CALL test();
DELIMITER ;

  

3.loop循環

DELIMITER //
DROP PROCEDURE IF EXISTS test; 
CREATE PROCEDURE test()
BEGIN
  DECLARE i INT;
  SET i = 0;
	lp : LOOP                          		    # lp為循環體名,可隨意 loop為關鍵字
		INSERT INTO test VALUES(i+11,'test','20');   # 往test表添加數據
		SET i = i + 1;                  	    # 循環一次,i加一
		IF i > 10 THEN                  	    # 結束循環的條件: 當i大於10時跳出loop循環
					LEAVE lp;
			END IF; 
	END LOOP;
	SELECT * FROM test;
END
//
CALL test();
DELIMITER ;

  


免責聲明!

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



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