REPLACE(str, from_str, to_str)
-- 回傳將 str 中所有 from_str 替換為 to_str 後的字串
UPDATE users_settings
SET ConfigValue = REPLACE(ConfigValue, 'fromstr', 'tostr')
WHERE ConfigName = 'Accesslist';
將 ConfigName='Accesslist' 的記錄中,ConfigValue 所有 fromstr 替換為 tostr。
UPDATE products
SET description = REPLACE(TRIM(description), ' ', ' ');
-- 先去首尾空白,再將雙空白縮為單空白
UPDATE articles
SET content = REPLACE(REPLACE(REPLACE(content, '<', '<'), '>', '>'), '"', '"');
-- HTML 特殊字元轉義
UPDATE users
SET phone = CASE
WHEN phone LIKE '09%' THEN REPLACE(phone, '09', '+8869')
WHEN phone LIKE '02%' THEN REPLACE(phone, '02', '+8862')
ELSE phone
END;
-- 手機/市話號碼轉國際格式
REPLACE 會掃描整個字串,大欄位(TEXT、長 VARCHAR)大量更新時較慢。REGEXP_REPLACE()。SELECT 驗證影響範圍:SELECT id, ConfigValue, REPLACE(ConfigValue, 'fromstr', 'tostr') FROM users_settings WHERE ConfigName='Accesslist';START TRANSACTION; ... UPDATE ...; COMMIT; 可原子回滾。| 功能 | REPLACE(str, from, to) | REPLACE INTO table ... |
|---|---|---|
| 類型 | 字串函數 | DML 語句 |
| 用途 | 字串內容替換 | 插入或更新整列(主鍵/唯一鍵衝突則刪除舊列再插入新列) |
| 範例 | SELECT REPLACE('abc', 'a', 'x') → 'xbc' | REPLACE INTO users (id, name) VALUES (1, 'new') |
切勿混淆兩者!