1. 程式人生 > 實用技巧 >MySQL批量更新

MySQL批量更新

目錄

    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;
    

    臨時表也是一個思路。