开发中经常遇到要根据查询结果显示不同的结果,这时候我们可以使用Mysql的case when来实现,类似于java中的switch语句,两种功能简单函数和搜索函数,废话少说,直接上代码了,
简单函数
场景:数据库表性别字段存储的为1或2,但前端显示时为男或女
SELECT u.*,
CASE u.gender
WHEN 1 THEN '男'
WHEN 2 THEN '女'
END sex
FROM t_users u
搜索函数
场景:列表返回时需要根据年龄去判断处于人生的哪个阶段
SELECT u.id,u.address,u.age,u.`name`,u.role_id,u.gender,
CASE
WHEN u.age <= 10 THEN '儿童'
WHEN u.age <= 20 THEN '少年'
WHEN u.age <= 30 THEN '青年'
when u.age <=40 THEN '中年'
ELSE '老年'
END stage
FROM t_users u
总结:
类似于java中的switch语句,在需要分情况时用起来还是比较方便的,并且比在代码中再处理要快,所以优先推荐使用此函数来完成相应的功能。