一、注释
从#字符到行尾
从'-- '序列到行尾。两个破折号之后至少要有一个空格符或制表符。
二、设置变量
用户变量的形式为@var_name,其中变量名varname可以有当前字符集的文字数字字符、'.'、'_'和'$'组成。
SET @var_name = expr[.@var_name=expr]...
对于SET,可以使用=或:=作为分配符。分配给每个变量的expr可以为整数、实数、字符串或者NULL值。
也可以使用语句替代SET来为用户变量分配一个值。在这种情况下必须用:=不能用=。例如:
SET @t1=0,@t2=0,@t3=0;
或
select @t1:=10
或
select @t1:=(@t2:=1)+@t3:=4,@t1,@t2,@t3;
三、流程控制
1、case
case value
when [compare-value] then result
[when [compare-value] then result...]
[else result]
end
2、if
if(expr1,expr2,expr3):如果expr1是TRUE(expr1<>0 and expr1<>NULL),则if()的返回值是expr2,否则返回值为expr3.if()返回值为数字值或字符串值,具体情况使其所在语境而定。
select *,if(id>1305,"男',"女")as sex from user;
IFNULL(expr1,expr2):如果expr1是空,返回expr1,否则返回expr2;
select IFNULL(1,0) 返回0
NULLIF(expr1,expr2):如果expr1=expr2成立,那么返回值为NULL,否则返回值为expr1.
select NULLIF(1,1) 返回NULL