萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

MySQL REPLACE() 函數實戰:批量替換字段字符串,如清理文章圖片鏈接

函數語法

REPLACE(str, from_str, to_str)
-- 返回將 str 中所有 from_str 替換為 to_str 後的新字符串

結合 UPDATE 批量替換

UPDATE dede_addonarticle
SET body = REPLACE(body, 'news/uploads/allimg/c110826', 'news/uploads/blank.gif?');

將 Dedecms 文章內容表 body 字段中所有舊圖片路徑替換為空白圖片,隨後可刪除原圖文件釋放空間。

更多實用場景

場景SQL 示例
去除字段首尾空格UPDATE t SET col = TRIM(col);
統一換行符UPDATE t SET content = REPLACE(content, '\r\n', '\n');
脫敏手機號UPDATE users SET phone = CONCAT(SUBSTRING(phone,1,3), '****', SUBSTRING(phone,8,4));
修正域名遷移UPDATE posts SET content = REPLACE(content, 'old.com', 'new.com');

性能提示

  • 大表批量 UPDATE 會產生大量 Binlog、鎖表久。建議:
  • 分批處理(WHERE id BETWEEN ... AND ...)。
  • 低峰期執行,或使用 pt-online-schema-change 類工具。
  • 確保 WHERE 條件命中索引,避免全表掃描鎖全表。
copyright © 萬盛學電腦網 all rights reserved