1. 分支结构
1.1 if函数
// 表达式成立,则执行语句1,否则执行语句2.
if(表达式1, 语句1, 语句2);
1.2 if结构
if 条件1 then 语句1; # 分支1
elseif 条件2 then 语句2; # 分支2
else 语句3; # 分支3
end if;
# 示例:输入分数,输出等级。
create function test_if(score int) returns char
begin
if score>=90 then return 'A';
elseif score>=80 then return 'B';
else return 'C';
end if;
end $
1.3 case结构
case 表达式
when 值1 then 返回值1;
else 返回值n;
end [case ;]
// 示例略
2. 循环结构
一般在函数或存储过程中使用
while,loop,repeat
2.1 while
# 结构1:单条件结束
select @i;
while 条件 do
...
set @i = @i+1;
end while;
# 结构2:多条件退出
a: while 条件1 do
...
if 条件2 leave a; # 退出
if 条件3 iterate a; # continue
end if; # 正常结束
set @i = @i + 1;
end while a;
2.2 repeat
相当于do...while
a: repeat
if 条件1 leave a;
end if;
UNTIL 条件2;
end repeat a;
2.3 loop
loop是死循环,只能在里面结束
a: loop
if 条件 leave a;
end if;
end loop a;