为了账号安全,请及时绑定邮箱和手机立即绑定

Mysql-case when 使用

标签:
MySQL

当我们在查询数据的时候,我们可能希望对于一些数字的枚举值展示出其实际的文案值
比如:性别1我们想显示2我们想显示

一、case 使用场景

1.1 简单函数

CASE case_value
    WHEN when_value THEN statement_list
    [WHEN when_value THEN statement_list] ...
    [ELSE statement_list]
END CASE

1.2 case搜索函数

CASE
    WHEN search_condition THEN statement_list
    [WHEN search_condition THEN statement_list] ...
    [ELSE statement_list]
END CASE

二、使用示例

2.1 简单case函数;

case `gender`when 1 then '男'when 2 then '女'else '未知'end

2.2 case搜索函数。

case when gender = 1 then '男'when gender = 2 then '女'else '未知' end

准备数据如下


create table if not exists test_user(  `id` bigint(20) not null AUTO_INCREMENT comment '主键自增ID',  `name` varchar(64) not null comment '姓名',  `gender` integer not null comment '性别,1: 男, 2: 女',  `country_code` integer not null comment '所属国家CODE',
  primary key (`id`)
) charset = 'utf8mb4' comment '测试表';

一张参照表

国家country_code
中国100
美国110
法国120
雪国其他

INSERT INTO `test_user` (`name`, `gender`, `country_code`)
VALUES 
  ('清风', 1, 100), 
  ('玄武', 2, 100), 
  ('Kobe', 1, 110), 
  ('John Snow', 1, 200), 
  ('Peut-être', 0, 120);

三、实战示例

3.1 使用case简单函数

select `id`, `name`, `gender`, 
(case `gender`when 1 then '男'when 2 then '女'else '未知'end) as '性别',`country_code`from test_user;

webp

简单case查询结果.png

3.2 使用case搜索函数查询

select id, `name`, gender, 
(case when gender = 1 then '男'when gender = 2 then '女'else '未知' end) as '性别', 
country_code,
(case when country_code = 100 then '中国'when country_code = 110 then '英国'when country_code = 120 then '法国'else '雪国' end) as '国籍'from test_user;

webp

搜索函数查询结果.png



作者:泥称已被栈用
链接:https://www.jianshu.com/p/1bfddf9fd91e


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消