首页/数据/SQL 速查/TRIM / LTRIM / RTRIM 去空白
本包目录(311 条)
查询基础33 条连接与子查询40 条聚合与窗口函数54 条
函数速查60 条
变更与事务52 条性能与执行计划72 条

TRIM / LTRIM / RTRIM 去空白

去掉字符串两端的空白或指定字符:TRIM 默认只去半角空格,清洗用户输入时通常还要处理制表符与不换行空格。

SQL 速查数据更新于 2026-10-12

示例

示例
-- 去空格
SELECT TRIM('  hello  ');        -- 'hello'
SELECT LTRIM('  x'), RTRIM('x  ');

-- 去指定字符
SELECT TRIM(BOTH ',' FROM ',a,b,');   -- 'a,b'(MySQL/PG 均支持 BOTH/LEADING/TRAILING)
-- PostgreSQL 还可按字符集去边
SELECT btrim('xxhelloxx', 'x');      -- 'hello'
默认行为只去掉半角空格,不去 \t / 全角空格 / NBSP
方向LEADING 左、TRAILING 右、BOTH 两端
PostgreSQLbtrim(str, chars) / ltrim / rtrim 支持字符集参数
TRIM 不能清理字符串中间的空格,也不能处理全角空格(U+3000),入库前清洗要在应用层或 REGEXP_REPLACE 处理。

易错点

  • 以为 TRIM 能去掉中文全角空格是不成立的,需显式 TRIM(BOTH ' ' FROM s)
  • 比较含尾随空格的 CHAR 列时,MySQL 的 CHAR 会隐式去掉存储尾部空格,VARCHAR 不会,行为差异易混淆

数据来源与参考

  • MySQL 8.0 Reference Manual · String Functions
  • PostgreSQL Documentation · String Functions and Operators
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌