条件判断函数
本小节介绍 MySQL 提供的 IF、IFNULL、CASE 三种条件判断函数或结构,条件判断是为了实现控制流,在不同的条件下执行不同的流程。
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')
表示若NULL
,则展示为default @qq.com
。
3. CASE条件判断
以 teacher 表为例,将指定英文名对应的中文名展示出来:
SELECT
*,
CASE name
WHEN '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 三种条件判断,并且可以对指定字段进行条件判断得到满足需求的结果,需要注意的是,实际业务中这些条件判断用的很少,建议这些数据的处理交给后端程序语言去处理,可以更好的维护和管理业务逻辑代码。
本文来自互联网用户投稿,不拥有所有权,该文观点仅代表作者本人,不代表本站立场。
访问者可将本网站提供的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。
本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站,邮箱:80764001@qq.com,予以删除。
访问者可将本网站提供的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。
本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站,邮箱:80764001@qq.com,予以删除。