1. IF函数
以 student 表为例,使用 IF() 函数对查询结果的字段判断:
SELECT name,IF(age > 17,'成年','未成年') AS age_group,id_number FROM student;
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);
使用 IFNULL()
函数对查询结果的字段判断:
SELECT name,age,id_number,IFNULL(email,'default@qq.com') AS full_email FROM teacher;
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;
Tips:如上图所示, 对 name 字段进行条件判断,并将判断后的列重命名为 chinese_name,若指定的 name 字段的值满足 WHEN 则展示相应的 THEN 后面的值。
4. 小结
本小节介绍了 IF、IFNULL、CASE 三种条件判断,并且可以对指定字段进行条件判断得到满足需求的结果,需要注意的是,实际业务中这些条件判断用的很少,建议这些数据的处理交给后端程序语言去处理,可以更好的维护和管理业务逻辑代码。