其他分享
首页 > 其他分享> > 23、条件判断函数

23、条件判断函数

作者:互联网

IF单条件判断

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

SELECT name,IF(age > 17,'成年','未成年') AS age_group,id_number FROM student;

IF(age > 17,'成年','未成年') 表示若 age 字段满足 age > 17 则展示为 成年,否则展示为 未成年。

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;

IFNULL(email,'default@qq.com') 表示若 email 字段为 NULL ,则展示为 default @qq.com。

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;

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

参考资料:
http://www.imooc.com/wiki/mysqllesson/mysqlifelse.html

标签:qq,判断,函数,23,age,WHEN,com,teacher,name
来源: https://www.cnblogs.com/tiansz/p/16448889.html