一个好用的update语句

news/2024/7/24 13:01:54 标签: 后端

做过很多项目、实现过很多奇葩的需求,最近遇到一个比较有意思的功能,要求对mysql表中的数据,不同的行更新不同的值。

以前数据量比较少的时候,可能就提交多行update语句了,如下

UPDATE users
SET status = 'Minor'
WHERE age < 18;

UPDATE users
SET status = 'Adult'
WHERE age >= 18 AND age < 65;

UPDATE users
SET status = 'Senior'
WHERE age >= 65;

但是现在行数很多,怎么处理呢?mysql有个不错的update语句

UPDATE users
SET status = 
    CASE
        WHEN age < 18 THEN 'Minor'
        WHEN age >= 18 AND age < 65 THEN 'Adult'
    END;

这个语句,可以将满足条件的行赋予指定的数值,但是该语句,有个极大的风险,对于不在该范围内的行,会设置为默认值。为了解决这个问题,需要对该语句进行一定的改造

UPDATE users
SET status = 
    CASE
        WHEN age < 18 THEN 'Minor'
        WHEN age >= 18 AND age < 65 THEN 'Adult'
        ELSE status  -- 不在条件范围内的行保持原始的 status 值,不进行更新
    END;

这样修改之后,就只会影响在范围之内的行了。

所以,大家使用新的语句的时候,一定需要查清楚使用规则,不要因为不熟悉导致很大的问题。


http://www.niftyadmin.cn/n/5064285.html

相关文章

地理空间探测器保姆级教程-含实现程序-少理论多操作

1.实现软件excel程序 【传送门】 2.基本步骤 2.1 准备的数据样式 按省份地理位置&#xff0c;分为东中西三大板块 2.2 数据离散化 数据不需要标准化、归一化等X&#xff08;X可能多个&#xff09;数据&#xff0c;需要离散化&#xff0c;eg&#xff0c;使用门槛值&#x…

Centos7安装Mongodb7.xxNoSQL数据库(骨灰级+保姆级)

一: mongodb下载 MongoDB 社区免费下载版 MongoDB社区下载版 [rootwww tools]# wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-7.1.0-rc4.tgz 二: 解压到指定目录 [rootwww tools]# mkdir -p /usr/local/mongodb [rootwww tools]# tar -zxvf mongodb-…

Redis的事务管理

redis也支持事务&#xff0c;但与MySQL等关系型数据库相比&#xff0c;redis的事务比较简单。 一、redis事务的特点 1、redis的事务是一组命令集合 可以把redis的事务看成一个命令的缓存&#xff0c;把一组要执行的命令添加到集合中&#xff0c;然后按顺序一起执行。 2、redi…

哨兵(Sentinel-1、2)数据下载

哨兵&#xff08;Sentinel-1、2&#xff09;数据下载 一、登陆欧空局网站 二、检索 先下载2号为光学数据 分为S2A和S2B&#xff0c;产品种类有1C和2A&#xff0c;区别就是2A是做好大气校正的影像&#xff0c;当然数量也会少一些&#xff0c;云量检索条件中记得要按格式&#x…

JSON flag table for Link not found for toolset v143 v143

JSON flag table for Link not found for toolset v143 v143

PC 的新 AI 操作系统

目录 Win11 PC 新 AI PC 近年来&#xff0c;许多公司和组织都在开发新的 AI 操作系统&#xff0c;以帮助更好地利用人工智能技术。这些操作系统往往可以自动化一些日常操作&#xff0c;例如管理文件、安全性、网络连接等。它们还可以使用自然语言处理和机器学习算法来帮助用…

【密评】商用密码应用安全性评估从业人员考核题库(三)

商用密码应用安全性评估从业人员考核题库&#xff08;三&#xff09; 国密局给的参考题库5000道只是基础题&#xff0c;后续更新完5000还会继续更其他高质量题库&#xff0c;持续学习&#xff0c;共同进步。 501 多项选择题 《个人信息保护法》要求个人信息处理者应当采取哪些…

Android之startActivityForResult过时升级替换方法

一。旧版回调 startActivityForResult(intent, 3);//注意要求码 //接收其它页面回传结果和显示图片Overridepublic void onActivityResult(int requestCode, int resultCode, Nullable Intent data) {super.onActivityResult(requestCode, resultCode, data);//页面传回来的值i…