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');
测试表很简单,就是名字和工资的一个表格
2..如果我们想把 工资20000的工资减半,工资为15000的加500,工资为其他数目的不变,使用case when一条SQL就可以完成,而且速度还非常快。
1 2 3 4 5 6 7 8 9 | 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
分类:
Mysql
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构