MySQL 批量更新是指在一次操作中更新多条记录,而不是逐条更新。这通常通过使用 UPDATE
语句结合 CASE
或 JOIN
子句来实现。
CASE
语句:CASE
语句:JOIN
子句:JOIN
子句:批量更新常用于以下场景:
ERROR 1062 (23000): Duplicate entry
错误原因:通常是由于唯一键冲突导致的。
解决方法:
ON DUPLICATE KEY UPDATE
:在插入数据时,如果遇到唯一键冲突,则更新现有记录。ON DUPLICATE KEY UPDATE
:在插入数据时,如果遇到唯一键冲突,则更新现有记录。原因:可能是由于索引过多、数据量过大或锁竞争等原因。
解决方法:
假设有一个 users
表,需要批量更新用户的年龄和状态:
UPDATE users
SET age = CASE id
WHEN 1 THEN 25
WHEN 2 THEN 30
-- 其他情况
END,
status = CASE id
WHEN 1 THEN 'active'
WHEN 2 THEN 'inactive'
-- 其他情况
END
WHERE id IN (1, 2, ...);
希望这些信息对你有所帮助!如果有更多问题,请随时提问。
领取专属 10元无门槛券
手把手带您无忧上云