null值处理函数
IFNULL(expr1,expr2)
如果第一个参数 expr1 不为NULL则直接返回它,否则返回第二个参数 expr2。返回值是数字或者字符串。它相当于oracle中的nvl函数
SELECT ifnull(1,0);
SELECT ifnull(NULL,10);
SELECT ifnull(1/0,‘yes’);
该函数常用在算术表达式计算和组函数中,用来对null值进行转换处理,非常有用
NULLIF(expr1,expr2)
如果两个参数相等则返回NULL,否则返回第一个参数的值expr1
SELECT nullif(1,1),nullif(1,2);
IF(expr1,expr2,expr3)
如果第一个参数expr1为TRUE (expr1 <> 0 and expr1 <> NULL) ,则返回第二个参数expr2; 否则返回第三个参数expr3。返回值是数字或者字符串
SELECT if(1>2,2,3), if(1<2,‘yes’,‘no’);
SELECT if(NULL,2,3);
总结:
Ifnull(t1,t2)如果第一个表达式为真,则返回第一个,第一个不为真,则返回第二个
Nullif(t1,t2)如果两个值相等则返回null,否则返回第一个
If(t1,t2,t3) if t1为真则返回t2,否则返回t3