批量更新數據問題
阿新 • • 發佈:2017-09-04
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");
批量更新數據問題