MySQL 条件与空值判断函数
在 SQL 中,我们经常需要做条件判断和空值处理。MySQL 提供了几个非常实用的函数:IF()、IFNULL()、NULLIF()、ISNULL()。它们各有用途。
1. IF()
Section titled “1. IF()”-
表达式:
IF(expr, true_value, false_value) -
功能:如果条件
expr成立,返回true_value,否则返回false_value
相当于 SQL 里的 三元运算符。
SELECT IF(1 > 0, '正确', '错误'); -- 结果: 正确SELECT IF(2 < 1, 'yes', 'no'); -- 结果: no2. IFNULL()
Section titled “2. IFNULL()”-
表达式:
IFNULL(expr1, expr2) -
功能:如果
expr1不为 NULL,就返回expr1;如果为 NULL,就返回expr2。
常用于处理可能为空的字段,给一个默认值。
SELECT IFNULL(NULL, '默认值'); -- 结果: 默认值SELECT IFNULL('abc', '默认值'); -- 结果: abc3. NULLIF()
Section titled “3. NULLIF()”-
表达式:
NULLIF(expr1, expr2) -
功能:如果
expr1 = expr2,则返回NULL;否则返回expr1。
常用于避免除零错误,或在比较时做特殊处理。
SELECT NULLIF(5, 5); -- 结果: NULLSELECT NULLIF(5, 3); -- 结果: 5📌 典型用法:避免除零错误
SELECT 10 / NULLIF(0, 0); -- 返回 NULL,而不是报错4. ISNULL()
Section titled “4. ISNULL()”- 表达式:
ISNULL(expr) - 功能:判断
expr是否为 NULL,如果是返回 1,否则返回 0。
相当于布尔值判断。
SELECT ISNULL(NULL); -- 结果: 1SELECT ISNULL('abc'); -- 结果: 0