流程结构 if while
if分支
两种基本用法
1、用在select查询中
基本语法
if(条件, 结果为真, 结果为假);
mysql> select * from my_student; +----+-----------+----------+------+--------+ | id | name | class_id | age | gender | +----+-----------+----------+------+--------+ | 1 | 刘备 | 1 | 18 | 2 | | 2 | 李四 | 1 | 19 | 1 | | 3 | 王五 | NULL | 20 | 2 | | 4 | 张飞 | NULL | 21 | 1 | | 5 | 关羽 | NULL | 22 | 2 | | 6 | 曹操 | 1 | 20 | NULL | | 10 | 司马懿 | 6 | 26 | 1 | +----+-----------+----------+------+--------+ mysql> select *, if(age > 20, '符合', '不符合') as result from my_student; +----+-----------+----------+------+--------+-----------+ | id | name | class_id | age | gender | result | +----+-----------+----------+------+--------+-----------+ | 1 | 刘备 | 1 | 18 | 2 | 不符合 | | 2 | 李四 | 1 | 19 | 1 | 不符合 | | 3 | 王五 | NULL | 20 | 2 | 不符合 | | 4 | 张飞 | NULL | 21 | 1 | 符合 | | 5 | 关羽 | NULL | 22 | 2 | 符合 | | 6 | 曹操 | 1 | 20 | NULL | 不符合 | | 10 | 司马懿 | 6 | 26 | 1 | 符合 | +----+-----------+----------+------+--------+-----------+ 7 rows in set (0.00 sec)
2、用在复杂语句块中(函数、存储过程、触发器)
基本语法
if 条件表达式 then 满足条件要执行的语句; end if;
3、复合语法
基本语法
if 条件表达式 then 满足条件要执行的语句; else 不满足条件要执行的语句; end if; -- 如果有其他分支,嵌套使用 if 条件表达式 then 满足条件要执行的语句; else 不满足条件要执行的语句; if 条件表达式 then 满足条件要执行的语句; else 不满足条件要执行的语句; end if; end if;
while循环
基本语法
while 条件 do 要循环执行的代码 end while; • 1 • 2 • 3
结构标识符: 为结构命名
基本语法
标识名字: while 条件 do 要循环执行的代码 end while [标识名字];
mysql中没有continue 和break
- iterate 迭代 以下代码不执行,重新开始循环,相
标识名字: while 条件 do if 条件判断 then 循环控制 iterate / leave 标识名字; end if; 循环体 end while [标识名字];
- 当于continue
- leave 离开 终止循环,相当于break