目录
1️⃣ IF() – 条件判断函数(If Statement)
2️⃣ IFNULL() – 空值判断与替代函数(If Null)
3️⃣ NULLIF() – 相等返回 NULL(Null If Equal)
什么是条件函数?
条件函数是指在 SQL 查询过程中,根据某个条件的真假来决定返回哪一个值的函数。它们常用于控制逻辑流程、数据筛选、分类处理等场景。
常用 MySQL 条件函数总览表
函数名称(英文) | 中文含义 | 语法格式 | 含义解释 | 示例 |
---|---|---|---|---|
IF() |
条件判断函数 | IF(condition, true_value, false_value) |
如果条件为真,返回 true_value ,否则返回 false_value |
IF(score>=60, '及格', '不及格') |
IFNULL() |
空值替换函数 | IFNULL(expr1, expr2) |
如果 expr1 不为 NULL ,返回 expr1 ,否则返回 expr2 |
IFNULL(bonus, 0) |
NULLIF() |
相等转 NULL 函数 | NULLIF(expr1, expr2) |
如果 expr1 与 expr2 相等,返回 NULL ,否则返回 expr1 |
NULLIF(grade, 'F') |
CASE |
多条件分支判断 | CASE WHEN condition THEN result ... ELSE result END |
按照多个条件分支进行判断 | CASE WHEN salary>10000 THEN '高薪' WHEN salary>5000 THEN '中等' ELSE '低薪' END |
1️⃣ IF()
– 条件判断函数(If Statement)
英文含义:IF → if statement
中文解释:根据一个条件是否为真来返回不同的结果(类似于
if-else
)。语法:
IF(condition, value_if_true, value_if_false)
示例:
SELECT name, IF(score >= 60, '合格', '不合格') AS result FROM students;
2️⃣ IFNULL()
– 空值判断与替代函数(If Null)
英文含义:IFNULL → if null
中文解释:判断某个值是否为
NULL
,如果是,则返回指定默认值。语法:
IFNULL(expression, replacement_value)
示例:
SELECT name, IFNULL(score, 0) AS final_score FROM students;
3️⃣ NULLIF()
– 相等返回 NULL(Null If Equal)
英文含义:NULLIF → null if equal
中文解释:如果两个表达式相等,则返回
NULL
,否则返回第一个表达式。常用于防止除以 0 的错误。语法:
NULLIF(expr1, expr2)
示例:
SELECT score / NULLIF(attempts, 0) FROM exam_results;
4️⃣ CASE
– 多条件判断结构(Case When)
英文含义:CASE → conditional switch
中文解释:类似于其他语言中的
switch-case
,实现多条件判断与分类。语法:
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE resultN
END
示例:
SELECT
name,
CASE
WHEN score >= 90 THEN '优秀'
WHEN score >= 60 THEN '及格'
ELSE '不及格'
END AS level
FROM students;
常见使用场景
场景 | 使用函数 | 示例语句 |
---|---|---|
判断通过与否 | IF() |
IF(score >= 60, '通过', '未通过') |
缺失值替代 | IFNULL() |
IFNULL(phone, '无号码') |
防止除以 0 | NULLIF() |
sales / NULLIF(quantity, 0) |
多等级分类 | CASE |
CASE WHEN age < 18 THEN '未成年' ELSE '成年' END |