SELECT REPLACE('www.mysql.com', 'w', 'Ww');
-- 回傳 'WwWwWw.mysql.com'
-- 更新表欄位
UPDATE `dede_addonarticle` SET body = REPLACE(body, '', '');
UPDATE `dede_archives` SET title = REPLACE(title, '大洋新聞 - ', '');
UPDATE `dede_addonarticle` SET body = REPLACE(body, '../../../../../../', 'https://example.com/');
特性:多位元組安全、全域替換(所有出現處)、回傳新字串(原欄位未變,需 SET col = REPLACE(col,...))。
REPLACE INTO `table` (id, name) VALUES (1, 'aa'), (2, 'bb');
行為:
1. 嘗試 INSERT。
2. 若主鍵/唯一鍵衝突 → 刪除舊行 → 再 INSERT 新行。
3. 回傳影響行數 = 刪除行數 + 插入行數(1 表示純插入,>1 表示有替換)。
INSERT。INSERT 與 DELETE 權限。同字串函數,參數順序:REPLACE(目標字串, 搜尋字串, 替換字串)。
SELECT REPLACE('www.163.com', 'w', 'Ww'); -- 'WwWwWw.163.com'
UPDATE `table` SET `name` = REPLACE(`name`, 'aa', 'bb');
若有多個唯一索引,新行可能同時衝突多個舊行 → 單行替換多行。
REPLACE [LOW_PRIORITY | DELAYED]
[INTO] tbl_name [(col_list)]
VALUES (value_list), ...;
REPLACE [LOW_PRIORITY | DELAYED]
[INTO] tbl_name
SET col=value, ...;
REPLACE [LOW_PRIORITY | DELAYED]
[INTO] tbl_name [(col_list)]
SELECT ...;
mysql_affected_rows(conn); // 返回刪除+插入總行數
REPLACE 同時 SELECT。AUTO_INCREMENT 值在替換時會重新分配(舊行刪除、新行插入)。