MySQL循環語句

導讀 mysql常見的三種循環方式:while、repeat和loop循環。還有一種goto,不推薦使用。Linux就該這麼學

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 ;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章