全国协议5人面授小班,企业级独立开发考核,转业者的IT软件工程师基地 登录/注册 | 如何报名
当前位置: 数据库   >  条件判断函数
admin · 更新于 2021-08-05

1. IF函数

以 student 表为例,使用 IF() 函数对查询结果的字段判断:

SELECT name,IF(age > 17,'成年','未成年') AS age_group,id_number FROM student;
代码块
  • 1

查询结果如下图:

Tips:如上图所示, IF(age > 17,'成年','未成年') 表示若 age 字段满足 age > 17 则展示为 成年,否则展示为 未成年。

2. IFNULL函数

为了演示方便,先向 teacher 表插入测试数据:

INSERT INTO teacher (name,age,id_number,email) VALUES('Jack'30,'420117202006041111',NULL)('Mary'31,'420117202006042222','mary@qq.com')('Timo'35,'420117202006043333',NULL)('Faker'38,'420117202006044444','faker@qq.com')('Bob'35,'420117202006045555',NULL);
代码块
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

执行结果如下图:

使用 IFNULL() 函数对查询结果的字段判断:

SELECT name,age,id_number,IFNULL(email,'default@qq.com') AS full_email FROM teacher;
代码块
  • 1

执行结果如下图:

Tips:如上图所示, IFNULL(email,'default@qq.com') 表示若 email 字段为 NULL ,则展示为 default @qq.com

3. CASE条件判断

以 teacher 表为例,将指定英文名对应的中文名展示出来:

SELECT *CASE nameWHEN 'Tom'  THEN '汤姆'WHEN 'Jack' THEN '杰克'WHEN 'Mary' THEN '玛丽'WHEN 'Timo' THEN '提莫'WHEN 'Bob'  THEN '鲍勃'WHEN 'Judy' THEN '朱蒂'ELSE '未定义' END AS 'chinese_name'FROM teacher;
代码块
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

执行结果如下图:

Tips:如上图所示, 对 name 字段进行条件判断,并将判断后的列重命名为 chinese_name,若指定的 name 字段的值满足 WHEN 则展示相应的 THEN 后面的值。

4. 小结

本小节介绍了 IF、IFNULL、CASE 三种条件判断,并且可以对指定字段进行条件判断得到满足需求的结果,需要注意的是,实际业务中这些条件判断用的很少,建议这些数据的处理交给后端程序语言去处理,可以更好的维护和管理业务逻辑代码。


为什么选择汉码未来