REPLACE(str, from_str, to_str)
將 str 中所有 from_str 替換為 to_str,多位元組安全。
mysql> SELECT REPLACE('www.mysql.com', 'w', 'Ww');
-> 'WwWwWw.mysql.com'
UPDATE tb1 SET f1 = REPLACE(f1, 'abc', 'def');
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 INTO INSERT ... ON DUPLICATE KEY UPDATE
行為 刪除舊行 + 插入新行 更新指定欄位
自增 ID 可能改變 保持不變
觸發器 觸發 DELETE + INSERT 觸發 UPDATE
適用場景 全行替換、不在乎 ID 部分欄位更新、保留 ID
注意事項
- 需有表的
INSERT 與 DELETE 權限
- 依賴主鍵或唯一索引判斷衝突
- 大量操作時考慮分批、事務包裹
- 上一篇文章: MySQL 綁定特定 IP 監聽配置:提升資料庫安全性
- 下一篇文章: MySQL 基礎入門教程:連線、查詢、多行語句與提示符完整指南
Copyright © 程式碼之家 All Rights Reserved