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

如何批量更新多列数据为Id值且保留NULL列?

解决方案

可以通过条件判断实现需求,以下是两种常用的简洁写法:

通用SQL写法(适配多数数据库:MySQL、SQL Server、PostgreSQL等)

UPDATE profile_table
SET 
    FirstName = CASE WHEN FirstName IS NOT NULL THEN Id ELSE FirstName END,
    LastName = CASE WHEN LastName IS NOT NULL THEN Id ELSE LastName END,
    Email = CASE WHEN Email IS NOT NULL THEN Id ELSE Email END
WHERE Created_On >= '2024-08-01';

MySQL专属简化写法

如果使用MySQL数据库,可借助IF函数缩短代码:

UPDATE profile_table
SET 
    FirstName = IF(FirstName IS NOT NULL, Id, FirstName),
    LastName = IF(LastName IS NOT NULL, Id, LastName),
    Email = IF(Email IS NOT NULL, Id, Email)
WHERE Created_On >= '2024-08-01';

逻辑说明

  • 对每个目标字段做判断:若字段不为NULL,则替换为对应Id的值;若为NULL,则保留原值
  • WHERE子句精准限定处理范围,避免修改不符合条件的记录
  • 单条UPDATE语句完成操作,高效且符合需求

内容的提问来源于stack exchange,提问作者Bing Hao

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 20:25:53