分支
if
1、if(表达式,表达式,表达式):表达式1成立,返回1的值,否则返回表达式2的值;
例:SELECT IF(result>0,‘成功’,‘失败’);
2、应用于begin END中
IF 条件1 then 语句;
ELSEIF 条件2 then 语句2=;
end if;
case
#类似switch
CASE 表达式
WHEN 值1 THEN 语句1;
WHEN 值1 THEN 语句1;
WHEN 值1 THEN 语句1;
ELSE 语句;
END CASE;
#类似多重if
CASE
WHEN 值1 THEN 语句1;
WHEN 值1 THEN 语句1;
WHEN 值1 THEN 语句1;
ELSE 语句;
END CASE;
循环
分类
WHILE、LOOP、REPEAT
控制
iterate结束本次循环,进行下一次。leave类似于 break跳出结束循环
语法
#while语法
WHILE 循环条件 DO
循环体;
END WHILE;
#LOOP语法
[biaoqian:] LOOP
循环体;
END LOOP [biaoqian];
#repeat语法
[biaoqian] REPEAT
xunhuanti;
UNTIL xunhuan 结束条件;
end REPEAT [biaoqian];
结合while,iterate和leave实例
#循环1,利用leave
CREATE PROCEDURE test_while (in count INT)
BEGIN
DECLARE i int DEFAULT 1;
a:WHILE i<count
DO INSERT auto_test VALUES((count+i),'liming');
IF i>20 THEN LEAVE a;
END IF;
SET i=i+1;
END WHILE a;
END $
#循环2,利用iterate
CREATE PROCEDURE test_while2 (in count INT)
BEGIN
DECLARE i int DEFAULT 0;
a:WHILE i<count DO
SET i=i+1;
IF MOD(i,2)!=0 THEN ITERATE a;
END IF;
INSERT auto_test VALUES((20+i),'liming');
END WHILE a;
END $