1. 程式人生 > >批量更新數據問題

批量更新數據問題

file field 技術分享 query 循環數組 sql 簡寫 div 更新

同事最近遇到一個需要根據索引字段更新狀態數據的需求,而這個處理邏輯是循環查詢單條更新解決

主要代碼如下(簡寫):

<?php
foreach($array as $v)
{
    query("update table set field=‘value‘ where filed2=‘$v‘");
}
?>

主體思想是循環數組,進行更新,這樣的話就是要一條條的update,這樣數據多了以後總感覺執行過於緩慢,會給數據庫帶來壓力,於是我查了查資料,找到了一個批量更新

例子如下:

技術分享

這是一個簡單的例子,采用 case when then end的語句完成SQL更新裏面的if else

降低update執行的頻次,能夠做到每50條一更新 或者每 100條一更新,這樣就能大幅度的降低執行時間,減少數據庫的壓力了。

原SQL如下:

update `test_user` set num= case `name` 
when test1 then 100
when test2 then 200
when test3 then 300
end
where name in ("test1","test2","test3");

批量更新數據問題