流程結構:代碼的執行順序mysql
If在mysql中有兩種基本用法:sql
一、用在select查詢當中,看成一種條件來判斷函數
基本語法:if(條件,爲真結果,爲假結果)blog
最好取別名 if(條件,爲真結果,爲假結果) as 別名it
二、用在複雜的語句塊中(函數/存儲過程/觸發器)select
基本語法:循環
if 條件表達式 then語法
知足條件要執行的語句;im
end if;命名
複合語法:代碼的判斷存在兩面性,兩面都有對應的代碼執行
基本語法:
if 條件表達式 then
知足條件要執行的語句;
else
不知足條件要執行的語句;
//若是還有其餘分支(細分),能夠在裏面再使用if
if 條件表達式 then
知足條件要執行的語句;
end if;
end if;
循環體都是須要在大型代碼塊中使用。
基本語法
while 條件 do
循環體;
end while;
結構標識符
結構標識符:爲某些特定的結構進行命名,而後爲的是在某些地方使用名字。
基本語法
標識名字:while 條件 do
循環體;
end while[標識名字];
標識符的存在主要是爲了循環體中使用循環控制。在mysql中沒有continue和break,有本身的關鍵字替代。
iterate:迭代,就是如下的代碼不執行,從新開始循環(continue)
leave:離開,整個循環終止(break)
基本語法:
標識名字:while 條件 do
if 條件判斷 then
循環控制;
iterate/leave 標識名字;
end if;
循環體;
end while[標識名字];
基本語法:
case [條件]
when條件1 then 語句1
when條件2 then 語句2
….
else 語句n
end case
case能夠用在select語句中,但不能用在where語句中。
一、判斷的同時改變其值
select OperatorAccount,
case
when CreateTime>'2016-02-14 16:24:42' then 'after'
when CreateTime<'2016-02-14 16:24:42' then 'before'
else 'now' end stage
from log_login order by CreateTime DESC
二、拆分一行爲多列