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

MySQL REPLACE 函數與語句實戰:字串替換、資料清洗與批量更新

     編輯:MySQL 資料庫相關知識

REPLACE 函數(字串替換)

語法

REPLACE(str, from_str, to_str)

將 str 中所有 from_str 替換為 to_str,多位元組安全。

範例

mysql> SELECT REPLACE('www.mysql.com', 'w', 'Ww');
-> 'WwWwWw.mysql.com'

UPDATE 批量替換欄位內容

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

實戰:清洗 CMS 文章內容

UPDATE `dede_addonarticle` SET body = REPLACE(body, '', '');
UPDATE `dede_addonarticle` SET body = REPLACE(body, '', '');
UPDATE `dede_addonarticle` SET body = REPLACE(body, '', '');
UPDATE `dede_archives` SET title = REPLACE(title, '大洋新聞 - ', '');
UPDATE `dede_addonarticle` SET body = REPLACE(body, '../../../../../../', 'https://special.dayoo.com/meal/');

REPLACE INTO 語句(插入或更新)

語法 1:批量插入/替換

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

若主鍵/唯一鍵衝突,刪除舊行插入新行。

語法 2:SELECT 來源替換

REPLACE INTO target_table SELECT * FROM source_table;

函數用法

SELECT REPLACE('www.webjx.com', 'w', 'Ww');
-- WwWwWw.webjx.com

UPDATE table SET name = REPLACE(name, 'aa', 'bb');

REPLACE INTO vs INSERT ... ON DUPLICATE KEY UPDATE

特性REPLACE INTOINSERT ... ON DUPLICATE KEY UPDATE
行為刪除舊行 + 插入新行更新指定欄位
自增 ID可能改變保持不變
觸發器觸發 DELETE + INSERT觸發 UPDATE
適用場景全行替換、不在乎 ID部分欄位更新、保留 ID

注意事項

  • 需有表的 INSERT 與 DELETE 權限
  • 依賴主鍵或唯一索引判斷衝突
  • 大量操作時考慮分批、事務包裹
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved