📅  最后修改于: 2023-12-03 15:17:46.055000             🧑  作者: Mango
MySQL的NULLIF()函数返回两个表达式的第一个表达式,如果第一个表达式与第二个表达式相等,则返回NULL,否则返回第一个表达式。这个函数对处理可能会产生错误或未定义值的表达式特别有用。
NULLIF(expr1, expr2)
expr1
: 一个表达式expr2
: 一个表达式,用于与第一个表达式进行比较expr1
等于expr2
,则返回NULL
expr1
不等于expr2
,则返回expr1
SELECT NULLIF(1, 1); -- NULL
SELECT NULLIF(1, 2); -- 1
SELECT NULLIF(NULL, NULL); -- NULL
SELECT NULLIF(3 + NULL, NULL); -- NULL
SELECT NULLIF(NULL, 0); -- NULL
在第一个示例中,NULLIF()返回NULL,因为1等于1。在第二个示例中,NULLIF()返回1,因为1不等于2。在第三个示例中,NULLIF()返回NULL,因为NULL等于NULL。在第四个示例中,NULLIF()返回NULL,因为3 + NULL是NULL。在第五个示例中,NULLIF()返回NULL,因为NULL等于0。
如果要使用NULLIF()来防止除以零的错误,可以这样做:
SELECT 1 / NULLIF(0, 0); -- NULL
如果第二个参数为0,则NULLIF()返回0,可以避免出现除以零的错误。