MySQL批量更新
阿新 • • 發佈:2020-11-29
目錄
MySQL批量更新,相對於一個個更新,效率肯定更快,特別是在有限定時間內需要實現大批量的更新,節約很多時間成本,近期實現也遇到一些坑,做些整理總結。
實現方式:
- replace into
replace into t (id,name) values (1,'2'),(2,'3');
使用的時候要注意:記錄已存在是先刪除再建立,所以只是更新某些欄位使用這個會造成很大的資料丟失問題,切勿直接使用;
- insert into ...on duplicate key update批量更新
insert into t (id,name) values (1,'2'),(2,'3') on duplicate key update name=values(name);;
這個用的也是比較多的,更新邏輯不會出現上面所說的問題;
- 批量更新
UPDATE t
SET name = CASE id
WHEN 1 THEN 3
WHEN 2 THEN 4
WHEN 3 THEN 5
END
WHERE id IN (1,2,3)
- 臨時表
create temporary table tmp(id int(4) primary key,dr varchar(50)); insert into tmp values (0,'gone'), (1,'xx'),(m,'yy'); update t, tmp set t.dr=tmp.dr where t.id=tmp.id;
臨時表也是一個思路。