流程結構 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;
結構辨別符: 為結構命名
辨別名字: while 條件 do
要循環執行的代碼
end while [辨別名字];
- iterate 疊代 以下代碼不執行,重新開始循環,相當于continue
- leave 離開 終止循環,相當于break
辨別名字: while 條件 do
if 條件判斷 then
循環控制
iterate / leave 辨別名字;
end if;
循環體
end while [辨別名字];