流程结构:代码的执行顺序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
二、拆分一行为多列