Mysql-case when 使用

當(dāng)我們在查詢數(shù)據(jù)的時(shí)候,我們可能希望對于一些數(shù)字的枚舉值展示出其實(shí)際的文案值
比如:性別1我們想顯示,2我們想顯示

一、case 使用場景

1.1 簡單函數(shù)

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

1.2 case搜索函數(shù)

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

二、使用示例

2.1 簡單case函數(shù)

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

2.2 case搜索函數(shù)

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

準(zhǔn)備數(shù)據(jù)如下


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 
  ('清風(fēng)', 1, 100), 
  ('玄武', 2, 100), 
  ('Kobe', 1, 110), 
  ('John Snow', 1, 200), 
  ('Peut-être', 0, 120);

三、實(shí)戰(zhàn)示例

3.1 使用case簡單函數(shù)

select `id`, `name`, `gender`, 
(case `gender`
when 1 then '男'
when 2 then '女'
else '未知'
end) as '性別',
`country_code`
from test_user;
簡單case查詢結(jié)果.png

3.2 使用case搜索函數(shù)查詢

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;
搜索函數(shù)查詢結(jié)果.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容