Mysql中update數據使用case when批量更改!


1.先創建測試表和數據

 1 CREATE TABLE graduates (  
 2   name varchar(255) ,  
 3   income int4(255)   
 4 );  
 5 
 6 INSERT INTO graduates VALUES ('桑普森', '400000');  
 7 INSERT INTO graduates VALUES ('邁克', '30000');  
 8 INSERT INTO graduates VALUES ('懷特', '20000');  
 9 INSERT INTO graduates VALUES ('阿諾德', '20000');  
10 INSERT INTO graduates VALUES ('史密斯', '20000');  
11 INSERT INTO graduates VALUES ('勞倫斯', '15000');  
12 INSERT INTO graduates VALUES ('哈德遜', '15000');  
13 INSERT INTO graduates VALUES ('肯特', '10000');  
14 INSERT INTO graduates VALUES ('貝克', '10000');  
15 INSERT INTO graduates VALUES ('斯科特', '10000'); 
View Code

測試表很簡單,就是名字和工資的一個表格

2..如果我們想把   工資20000的工資減半,工資為15000的加500,工資為其他數目的不變,使用case when一條SQL就可以完成,而且速度還非常快。

UPDATE graduates 
SET income =
CASE
 WHEN income = 20000 THEN
 income * 0.5 
 WHEN income = 15000 THEN
 income + 500 
 ELSE income 
END;

case開始,when 條件1 then 某值1,when 條件2 then 某值2,......else 某值n,end結束。

ELSE income,非常重要,如果不指定else的話,其他不符合條件的人工資會被置為null,如下圖。

 

 

 

轉載自:https://blog.csdn.net/nextaction/article/details/80453843


免責聲明!

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



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