You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL如何同时更新现有表新增列中的多行数据?

一次性更新SQL表某列多行数据的方法

作为SQL新手,你可以用以下几种方法实现批量更新多行的customer_name值:

方法1:用CASE WHEN语句(适合少量行更新)

这是最通用的写法,几乎所有SQL数据库都支持,通过判断每行的customer_id来设置对应的值:

UPDATE members
SET customer_name = CASE
    WHEN customer_id = 'A' THEN 'baby'
    WHEN customer_id = 'B' THEN 'john'
    -- 要是还有其他行需要更新,继续添加WHEN条件即可
    ELSE customer_name -- 保留其他未匹配行的原有值,避免误改
END;

方法2:用UPDATE结合JOIN(适合批量更新)

如果需要更新的行数较多,可以先构造包含更新映射关系的临时数据集,再通过JOIN关联表进行批量更新:

UPDATE members m
JOIN (
    VALUES
        ('A', 'baby'),
        ('B', 'john')
) AS temp(customer_id, new_name) ON m.customer_id = temp.customer_id
SET m.customer_name = temp.new_name;

注:不同数据库的语法略有差异,比如PostgreSQL用UPDATE ... FROM,SQL Server用UPDATE ... FROM,核心逻辑都是通过关联匹配来更新。

方法3:提前验证更新结果(避免误操作)

执行更新前,建议先用SELECT语句验证要设置的值是否正确:

SELECT 
    customer_id,
    join_date,
    CASE
        WHEN customer_id = 'A' THEN 'baby'
        WHEN customer_id = 'B' THEN 'john'
        ELSE customer_name
    END AS new_customer_name
FROM members;

确认结果符合预期后,再执行UPDATE语句更安全。

内容的提问来源于stack exchange,提问作者Madhuri Junghare

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 18:35:22