首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 清除字符串首尾空白字符:TRIM + REPLACE 組合拳

     編輯:MySQL 資料庫相關知識

短信審核時因內容含換行符(\r\n)導致精確匹配失敗。MySQL TRIM() 僅去除空格,無法處理換行。組合 REPLACE() 完美解決。

問題場景

數據庫存儲 '我愛你\r\n',查詢 WHERE msg = '我愛你' 不命中。

方案一:替換後再 TRIM(會影響中間換行)

UPDATE `tran` 
SET `status` = '1' 
WHERE TRIM(REPLACE(`msg`, '\r\n', ' ')) = '我愛你';

將所有 \r\n 替換為空格,再去首尾空格。副作用:內容中間的換行也被替換。

方案二:雙重 TRIM 精準去首尾(推薦)

UPDATE `tran` 
SET `status` = '1' 
WHERE TRIM(TRIM(BOTH '\r\n' FROM `content`)) = '我愛你';

TRIM(BOTH '\r\n' FROM ...) 僅移除首尾換行,內部換行保留。外層 TRIM() 再去除可能殘留的空格。等效於 PHP trim() 行為。

函數速查

函數語法說明
REPLACEREPLACE(str, from_str, to_str)全量替換,REPLACE INTO 為插入/更新語句
TRIMTRIM([BOTH|LEADING|TRAILING] remstr FROM str)去除指定字符,默認去空格

最佳實踐

  1. 入庫前清洗:應用層 trim() + 正則統一換行符
  2. 查詢時清洗:如上方案二,性能可接受(內置函數優化好)
  3. 全文搜索:考慮全文索引或 Elasticsearch
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved