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

如何修改SQL Update语句批量填充单列的多国家值?

解决方案

场景1:随机给NULL的County列分配指定国家

如果需要将所有County为NULL的行,随机填充肯尼亚、乌干达、喀麦隆、加纳这些国家,不同数据库的实现语句如下:

MySQL/MariaDB

UPDATE Madanga
SET County = ELT(FLOOR(RAND() * 4) + 1, '肯尼亚', '乌干达', '喀麦隆', '加纳')
WHERE County IS NULL;
  • RAND()生成0-1的随机数,乘以4后取整加1,得到1-4的整数索引
  • ELT()根据索引返回对应位置的国家值

PostgreSQL

UPDATE Madanga
SET County = (ARRAY['肯尼亚', '乌干达', '喀麦隆', '加纳'])[FLOOR(random() * 4) + 1]
WHERE County IS NULL;
  • 用数组存储目标国家,通过随机数生成的索引取出对应值

SQL Server

WITH RandomCountries AS (
    SELECT ID, 
           (SELECT TOP 1 Country 
            FROM (VALUES ('肯尼亚'),('乌干达'),('喀麦隆'),('加纳')) AS C(Country)
            ORDER BY NEWID()) AS RandomCountry
    FROM Madanga
    WHERE County IS NULL
)
UPDATE Madanga
SET County = rc.RandomCountry
FROM Madanga m
JOIN RandomCountries rc ON m.ID = rc.ID;
  • 通过CTE为每个NULL行生成随机国家,再关联完成更新

场景2:按规则对应指定国家

如果需要特定ID或条件匹配特定国家(比如ID=2设为肯尼亚,ID=3设为乌干达),可以用CASE语句精准控制:

UPDATE Madanga
SET County = CASE
    WHEN ID = 1 THEN '坦桑尼亚'
    WHEN ID = 2 THEN '肯尼亚'
    WHEN ID = 3 THEN '乌干达'
    WHEN ID = 4 THEN '喀麦隆'
    WHEN ID = 5 THEN '加纳'
END
WHERE County IS NULL OR ID IN (1,2,3,4,5);
  • CASE语句根据匹配条件返回对应国家,可灵活扩展规则

注意事项

  • 执行更新前建议先用SELECT验证结果:把UPDATE替换为SELECT County, 要设置的表达式 FROM Madanga WHERE 条件,避免误改数据
  • WHERE County IS NULL会确保只修改空值,不会覆盖已有非NULL的County值

内容的提问来源于stack exchange,提问作者Thomas Magono

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 00:39:59