萬盛學電腦網

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

MySQL REPLACE 函數實戰:字串替換與資料清洗指南

基本語法

REPLACE(str, from_str, to_str)
  • str:目標字串或欄位名
  • from_str:要被替換的子字串
  • to_str:替換後的新字串

函數會返回所有from_str 都被 to_str 取代後的新字串,原資料不會被修改,需搭配 UPDATE 寫入。

常見用法

1. 欄位內容批次替換

UPDATE `table_name` 
SET `field_name` = REPLACE(`field_name`, '舊字串', '新字串')
WHERE `field_name` LIKE '%舊字串%';

範例:將 tb1 表 f1 欄位中的 abc 全部改為 def

UPDATE tb1 SET f1 = REPLACE(f1, 'abc', 'def');

2. 配合 INSERT 使用(較少見)

REPLACE INTO `table` (id, name) VALUES ('1', 'aa'), ('2', 'bb');

此語法等同於 INSERT ... ON DUPLICATE KEY UPDATE,若主鍵或唯一鍵衝突則刪除舊行再插入新行,非字串替換功能,僅語法關鍵字相同,請勿混淆。

效能提示

  • 大量資料更新時,建議先加 WHERE 條件縮小掃描範圍。
  • 若需移除空白字元,可巢狀使用:REPLACE(REPLACE(str, '\r', ''), '\n', '')。
  • 替換後字串長度超過欄位定義會被截斷並產生警告,請預留足夠長度。
copyright © 萬盛學電腦網 all rights reserved