UPDATE table_name
SET column_name = REPLACE(column_name, 'old_substring', 'new_substring')
[WHERE condition];
REPLACE(str, from_str, to_str):將 str 中**所有**出現的 from_str 替換為 to_str,區分大小寫。from_str 為空字符串,不做任何操作。UPDATE `cdb_pms` SET `subject` = REPLACE(`subject`, 'Welcome to', '歡迎光臨');
-- 原數據
SELECT host, user FROM mysql.user WHERE user='testuser';
-- localhost.localdomain | testuser
UPDATE mysql.user SET host = REPLACE(host, 'main', 'slave') WHERE user='testuser';
-- 結果:localhost.localdoslave | testuser (演示替換任意子串)
UPDATE dede_addonarticle SET body = REPLACE(body, '大法', '方法');
-- 原:type 以 '78' 開頭
UPDATE items SET type = REPLACE(type, '78', '79');
-- 17536 行受影響,前綴統一變更為 '79'
WHERE 條件會鎖表掃描全表,大表請分批(按主鍵範圍)或維護窗口執行。SELECT 預覽受影響行。UPDATE t SET col = REPLACE(REPLACE(REPLACE(col, 'a', 'A'), 'b', 'B'), 'c', 'C');
或配合 CASE WHEN 實現條件替換。