首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 批量更新多條記錄:CASE WHEN + IN 列表單語句實現

     編輯:MySQL 資料庫相關知識

場景:表 pydot_g 已導入 name 欄位,需回填 package_name,逐條 UPDATE 效能極差。採用 CASE WHEN ... END 搭配 WHERE id IN (...) 單語句完成。

核心 SQL 模板

UPDATE table_name
SET field_name = CASE other_field
  WHEN val1 THEN 'new_val1'
  WHEN val2 THEN 'new_val2'
  WHEN val3 THEN 'new_val3'
END
WHERE id IN (val1, val2, val3);

PHP 動態生成腳本

關鍵點

  • CASE 分支對應 id,WHEN id THEN value 精確映射
  • WHERE id IN (...) 限制掃描範圍,避免全表掃描
  • 單語句原子執行,無死鎖風險,Binlog 體積小
  • 批次建議 500-1000 行,超大拆分事務
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved