ifnull
IFNULL(expr1,expr2)
如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr2。IFNULL()返回一个数字或字符串值,取决于它被使用的上下文环境
mysql> select IFNULL(1,0);-> 1mysql> select IFNULL(0,10);-> 0mysql> select IFNULL(1/0,10);-> 10mysql> select IFNULL(1/0,yes);-> yes
if
IF(expr1,expr2,expr3)
<>不等于
如果expr1是TRUE(expr1<>0且expr1<>NULL),那么IF()返回expr2,否则它返回expr3。IF()返回一个数字或字符串值,取决于它被使用的上下文。 相当于三元运算符
mysql> select IF(1>2,2,3);-> 3mysql> select IF(1<2,yes,no);-> yesmysql> select IF(strcmp(test,test1),yes,no);-> no
isnull
ISNULL(expr) 的用法
如expr 为null,那么isnull() 的返回值为 1,否则返回值为 0。
mysql> select isnull(1+1);-> 0mysql> select isnull(1/0);-> 1
使用= 的null 值对比通常是错误的。
nullif
NULLIF(expr1,expr2)用法
如果expr1 = expr2 成立,那么返回值为NULL,否则返回值为expr1。这和CASE WHEN expr1 = expr2 THEN NULL ELSE expr1 END相同。
mysql> SELECT NULLIF(1,1);-> NULLmysql> SELECT NULLIF(1,2);-> 1
如果参数不相等,则 MySQL 两次求得的值为 expr1
