MySQL中存儲過程有三種循環(huán):while, repeat, 和for
WHILE loop: WHILE loop是一種基本的循環(huán)方式。WHILE循環(huán)會從一個條件開始,只有在條件滿足時才會進行下一次迭代。 格式如下: WHILE condition DO statement(s); END WHILE;
下面是一個例子,打印出了10到1之間的數(shù)字:
DECLARE i INT DEFAULT 10; WHILE i >0 DO SELECT i; SET i = i - 1; END WHILE;
REPEAT loop:
REPEAT loop會在條件滿足之前執(zhí)行一次迭代,再檢查循環(huán)條件并決定是否繼續(xù)迭代。所以,在一些情況下它更有用。 格式如下: REPEAT statement(s); UNTIL condition END REPEAT;
下面是一個例子,打印出了1到10之間的數(shù)字:
DECLARE i INT DEFAULT 1; REPEAT SELECT i; SET i = i + 1; UNTIL i >10 END REPEAT;
FOR loop:
FOR loop是一種基于游標的循環(huán)方式,游標是用來跟蹤表中的記錄的。它在所有循環(huán)方式中性能最好,因為它允許直接在游標上循環(huán),而不是在查詢結(jié)果上。 格式如下: FOR iterator_var AS cursor_name DO statement(s); END FOR;
下面是一個例子,打印出了1到10之間的數(shù)字:
DECLARE i INT DEFAULT 1; FOR i IN 1..10 DO SELECT i; END FOR;