循環結構一共分為三種:
三種循環結構分別為while、repeat、loop。
while循環
語法while?表達式(如果表達式為true則執行業務邏輯,否則不執行,與repeat循環相反,repeat循環滿足表達式退出循環,不滿足一直執行)?do
業務邏輯
end?while;
事例BEGIN
DECLARE?num?int?DEFAULT?0;
WHILE?num<100?DO
SET?num=num+1;
END?WHILE;
select?CONCAT(num);
END
repeat語法:REPEAT
業務邏輯
UNTIL?表達式(滿足表達式退出循環,不滿足一直執行。和while相反,while循環滿足表達式循環,不滿足跳出循環)
END?REPEAT
事例:BEGIN
DECLARE?num?int?DEFAULT?0;
REPEAT
SET?num=num+1;
UNTIL?num=100
END?REPEAT;
select?CONCAT(num);
END
loop語法:
注意:必須在loop的業務邏輯中定義退出循環的的語句,否則出現死循環。可以使用leave關鍵字退出循環。[別名:]loop
業務邏輯
end?loop?[別名]
使用leave退出loop循環語法BEGIN
DECLARE?num?int?DEFAULT?0;
--?countnum為loop別名
countnum:?LOOP
IF?表達式?THEN
LEAVE?countnum;
END?IF;
END?LOOP?countnum;
select?CONCAT(num);
END
事例:BEGIN
DECLARE?num?int?DEFAULT?0;
countnum:?LOOP
SET?num=num+1;
IF?num=50?THEN
LEAVE?countnum;
END?IF;
END?LOOP?countnum;
select?CONCAT(num);
END