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

MySQL TRIM() 函數深度解析:不只能去空格,還能去任意前綴後綴

     編輯:MySQL 資料庫相關知識

TRIM() 是被低估的強大函數,許多人只知 LTRIM/RTRIM 去空格,實則它支援自定義字符集合與方向控制。

完整語法

TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str)
  • BOTH(預設):同時去首尾。
  • LEADING:僅去前綴。
  • TRAILING:僅去後綴。
  • remstr:要去除的字符集合(非單一字串),預設空格。

實戰範例

-- 1. 預設去首尾空格
SELECT TRIM('  bar  ');           -- 'bar'

-- 2. 去除指定前綴字符(注意:remstr 是字符集合,而非子串)
SELECT TRIM(LEADING ',' FROM ',,barxxx');  -- 'barxxx'  (去掉所有前導 ',')

-- 3. 去除指定首尾字符
SELECT TRIM(BOTH ',' FROM ',,bar,,,');  -- 'bar'

-- 4. 僅去後綴
SELECT TRIM(TRAILING ',' FROM 'barxxyz,,');  -- 'barxxyz'

關鍵細節:remstr 視為字符集合,TRIM(BOTH 'abc' FROM 'abcabc') 會去除所有首尾的 a、b、c,而非整體匹配 'abc'。

實戰場景:清洗字段尾部分隔符

表 news 欄位 newstext 以 [!--empirenews.page--] 結尾,需批量移除:

UPDATE news
SET newstext = TRIM(TRAILING '[!--empirenews.page--]' FROM newstext)
WHERE newstext LIKE '%[!--empirenews.page--]';

配合 WHERE 避免全表掃描,僅處理含目標後綴的行。

多字節安全

TRIM/LTRIM/RTRIM 均為多字節安全,中文、Emoji 均正確處理。

對比總結

函數功能適用場景
LTRIM(str)去左空格簡單去首空格
RTRIM(str)去右空格簡單去尾空格
TRIM(str)去首尾空格通用清洗
TRIM(LEADING 'x' FROM str)去指定字符集合前綴清洗固定前綴標記
TRIM(TRAILING 'x' FROM str)去指定字符集合後綴清洗固定後綴分隔符
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved