Mysql-case when 使用


一、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;
 
          
 
         
簡單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;
 
         
 
搜索函數查詢結果.png


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM