关于MySQL中对于NULL值的判断以及替换等问题中,我们可以使用IF()、IFNULL()、NULLIF()、ISNULL()
函数,区别如下:
-
IF()函数
IF(expr1,expr2,expr3)
,如果expr1的值为true,则返回expr2的值,如果expr1的值为false,则返回expr3的值。SELECT IF(TRUE,'1','0'); -- 1 SELECT IF(FALSE,'1','0'); -- 0
-
IFNULL()函数
IFNULL(expr1,expr2)
,如果expr1的值为NULL,则返回expr2的值,如果expr1的值不为NULL,则返回expr1的值。SELECT IFNULL(NULL,'0'); -- 0 SELECT IFNULL('123','0'); -- 123
-
NULLIF()函数
NULLIF(expr1,expr2)
,如果expr1=expr2成立,那么返回值为NULL,否则返回值为expr1的值。SELECT NULLIF('1','1'); -- null SELECT NULLIF('1','2'); -- 1
-
ISNULL()函数
ISNULL(expr)
,如果expr的值为NULL,则返回1,如果expr1的值不为NULL,则返回0。SELECT ISNULL(NULL); -- 输出结果:1 SELECT ISNULL('1'); -- 输出结果:0