MySQL數據庫8(二十三)流程結構(if / while)

流程結構

流程結構:代碼的執行順序mysql

 

If分支

基本語法

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循環

循環體都是須要在大型代碼塊中使用。

 

基本語法

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循環

基本語法:

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

 

二、拆分一行爲多列

相關文章
相關標籤/搜索