表 sc 中 sgrade 字段因誤操作被統一添加了前綴 's'(如 's85'),現需批量去除該字符恢復原始數據。
UPDATE sc
SET sgrade = REPLACE(sgrade, 's', '');
| 場景 | SQL 寫法 | 說明 |
|---|---|---|
| 僅移除首字符 | UPDATE sc SET sgrade = SUBSTRING(sgrade, 2, LEN(sgrade)-1) WHERE sgrade LIKE 's%' | 避免誤刪中間的 's' |
| 移除多種字符 | UPDATE sc SET sgrade = REPLACE(REPLACE(sgrade, 's', ''), 'S', '') | 巢狀 REPLACE 處理大小寫 |
| 條件更新 | UPDATE sc SET sgrade = REPLACE(sgrade, 's', '') WHERE sgrade LIKE 's%' | 減少無效寫入,提升性能 |
建議先運行 SELECT 預覽結果:
SELECT sgrade, REPLACE(sgrade, 's', '') AS new_grade FROM sc WHERE sgrade LIKE 's%';
REPLACE 是處理字符級清洗的首選,配合 WHERE 條件可精準控制影響範圍,執行前務必備份數據或在事務中測試。