循環(huán)的方式
- while
- repeat
- loop
有一種goto形式區(qū)塊跳轉(zhuǎn)也可以進(jìn)行循環(huán),不過不推薦
while
WHILE (條件) DO
...
END WHILE;
repeat
REPEAT
...
UNTIL 條件
END REPEAT;
loop
循環(huán)名: LOOP
IF 條件 THEN
LEAVE 循環(huán)名;
END IF;
...
END LOOP;
重點(diǎn)
- while的循環(huán)是先判斷循環(huán)條件,再執(zhí)行循環(huán)體。repeat是直接執(zhí)行循環(huán)體,結(jié)束時(shí)再通關(guān)UNTIL判斷循環(huán)條件。loop就相對(duì)簡單了,你可以將if條件安放在循環(huán)體的任意位置。
DECLARE 游標(biāo) CURSOR FOR SELECT 字段 FROM 表;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET flagtag = 1;
OPEN 游標(biāo)
循環(huán)
循環(huán)體(FETCH * INTO *)
CLOSE 游標(biāo);
循環(huán)通常會(huì)在游標(biāo)中出現(xiàn),在執(zhí)行游標(biāo)循環(huán)時(shí),通常是通過flagtag = 1;這樣的條件來判斷遍歷結(jié)束。使用repeat時(shí),如果不提前判斷flagtag,將會(huì)多執(zhí)行一次,所以執(zhí)行repeat循環(huán)時(shí),需要在這之前進(jìn)行循環(huán)條件判斷。