MySQL 去掉字符串前后或中间的某一字符串

本文介绍了SQL中的replace和trim函数用法,包括如何使用replace函数批量替换字符串中的指定内容,以及如何利用trim函数去除字符串两端的特定字符,适用于数据清洗等场景。

1、replace 函数

语法:replace(object,search,replace)
含义:把object中出现search的全部替换为replace

select replace('张  三',' ','');
+---------------------------+  
| replace('张  三',' ','')   |  
+---------------------------+ 
| 张三                       |  
+---------------------------+ 

--把表table中的name字段中的空格去掉 
update table set name=replace(name,' ','') 

2、trim 函数

语法:trim([{BOTH | LEADING | TRAILING} [remstr] FROM] str)
含义:去掉字符串前面或后面指定的字符串

--1、去掉字符串前后的空格
SELECT TRIM(' zhangsan  ');
+---------------------------+  
| TRIM(' zhangsan  ')       |  
+---------------------------+ 
| zhangsan                  |  
+---------------------------+ 
--2、去掉左边指定的字符串
SELECT TRIM(LEADING 'x' FROM 'xxxzhangsanxxx');
+------------------------------------------------+  
| TRIM(LEADING 'x' FROM 'xxxzhangsanxxx')        |  
+------------------------------------------------+ 
| zhangsanxxx                                    |  
+------------------------------------------------+ 
--3、去掉右边指定的字符串
SELECT TRIM(TRAILING 'x' FROM 'xxxzhangsanxxx');
+------------------------------------------------+  
| TRIM(TRAILING 'x' FROM 'xxxzhangsanxxx')       |  
+------------------------------------------------+ 
| xxxzhangsan                                    |  
+------------------------------------------------+ 
--4、去掉前后指定的字符串
SELECT TRIM(BOTH 'x' FROM 'xxxzhangsanxxx');
+------------------------------------------------+  
| TRIM(BOTH 'x' FROM 'xxxzhangsanxxx')           |  
+------------------------------------------------+ 
| zhangsan                                       |  
+------------------------------------------------+ 
### MySQL 中去除字符串前后空格 在 MySQL 中,`TRIM()` 函数用于移除字符串两端的特定字符,默认情况下会移除空格。此函数提供了灵活的方式不仅限于处理可见字符,对于不可见字符同样适用。 #### 完整语法结构 完整的 `TRIM()` 函数语法如下所示: ```sql TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str) ``` 其中: - `BOTH`, `LEADING`, 和 `TRAILING` 关键字用来指明是从哪里删除指定字符; - 如果不提供这些关键字,默认行为相当于使用 `BOTH`; - `remstr` 参数定义了想要移除的具体字符序列,默认为空格; - `str` 是待操作的目标字符串[^1][^3]。 #### 实际应用案例 为了更直观理解如何利用该函数来清理数据中的多余空白,下面给出几个具体例子: ##### 移除普通空格 当只需要简单地去掉字符串两旁的标准ASCII码下的空格时,可以直接调用 `TRIM()` 而无需额外参数: ```sql SELECT TRIM(' Hello, world! '); -- 结果: 'Hello, world!' ``` ##### 自定义移除字符 除了标准意义上的空格外,有时也需要针对其他类型的填充符做相应处理。这时可以通过设置第二个参数来自定义要被裁剪掉的内容: ```sql SELECT TRIM(BOTH '_' FROM '__Example Text__'); -- 结果: 'Example Text' ``` ##### 处理特殊字符组合 考虑到实际场景可能涉及多种复杂情况,比如存在多个连续相同不同种类的置/后置符号,此时依然可以依靠 `TRIM()` 来完成任务: ```sql SELECT TRIM(LEADING '-=' FROM '--==Sample String===---'); -- 结果: 'Sample String===---' SELECT TRIM(TRAILING '!?' FROM 'Question?!?!'); -- 结果: 'Question' ``` 通过上述介绍可以看出,在面对不同类型的数据清洗需求时,MySQL 的 `TRIM()` 提供了个简洁而强大的解决方案[^2].
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

strggle_bin

一毛不嫌少,十元不嫌多

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值