短信審核時因內容含換行符(\r\n)導致精確匹配失敗。MySQL TRIM() 僅去除空格,無法處理換行。組合 REPLACE() 完美解決。
數據庫存儲 '我愛你\r\n',查詢 WHERE msg = '我愛你' 不命中。
UPDATE `tran`
SET `status` = '1'
WHERE TRIM(REPLACE(`msg`, '\r\n', ' ')) = '我愛你';
將所有 \r\n 替換為空格,再去首尾空格。副作用:內容中間的換行也被替換。
UPDATE `tran`
SET `status` = '1'
WHERE TRIM(TRIM(BOTH '\r\n' FROM `content`)) = '我愛你';
TRIM(BOTH '\r\n' FROM ...) 僅移除首尾換行,內部換行保留。外層 TRIM() 再去除可能殘留的空格。等效於 PHP trim() 行為。
| 函數 | 語法 | 說明 |
|---|---|---|
| REPLACE | REPLACE(str, from_str, to_str) | 全量替換,REPLACE INTO 為插入/更新語句 |
| TRIM | TRIM([BOTH|LEADING|TRAILING] remstr FROM str) | 去除指定字符,默認去空格 |
trim() + 正則統一換行符