批量与连表更新

有时候要拿另一张表的数据回写,或者给不同区间的行赋不同的值。这种『一对多』的更新靠连表与 CASE WHEN 完成。

批量与连表更新要点

批量与连表更新示例

						UPDATE user u JOIN orders o ON u.id = o.user_id
						SET u.last_amount = o.amount
						WHERE o.created_at BETWEEN '2024-01-01' AND '2024-06-30';

						UPDATE product SET price = CASE
						    WHEN price BETWEEN 0 AND 99 THEN price * 0.9
						    WHEN price BETWEEN 100 AND 499 THEN price * 0.8
						    ELSE price * 0.7 END;
避坑提醒:CASE WHEN 区间判断务必从小到大,否则小区间被大区间的前置分支抢先命中,后面分支永远走不到。
批量与连表更新 · UPDATE 更新 知识卡片
卡片 04 / 06 · UPDATE 更新(1080×1440 速查卡片)

UPDATE 更新知识点