MySQL 批量执行 UPDATE
操作是指在同一条 SQL 语句中更新多行数据,而不是逐行更新。这可以通过使用 CASE
语句或者 JOIN
子句来实现。
CASE
语句:CASE
语句:JOIN
子句:JOIN
子句:原因:
解决方法:
原因:
解决方法:
FOR UPDATE SKIP LOCKED
语句来跳过已经被锁定的行。假设我们有一个 users
表,需要批量更新用户的年龄:
-- 使用 CASE 语句进行批量更新
UPDATE users
SET age = CASE
WHEN id = 1 THEN 25
WHEN id = 2 THEN 30
WHEN id = 3 THEN 35
...
END;
-- 使用 JOIN 子句进行批量更新
UPDATE users
INNER JOIN (SELECT id, new_age FROM update_data) AS subquery
ON users.id = subquery.id
SET users.age = subquery.new_age;
希望这些信息对你有所帮助!如果有更多问题,请随时提问。
领取专属 10元无门槛券
手把手带您无忧上云