MySQL trim()函数

MySQL TRIM函数介绍

用户输入的数据通常不是我们所预期的。有时候,它的格式不正确,例如错误的情况,甚至有些甚至包含前导和尾随空格以及其他不需要的字符。
为了保持数据格式正确,在数据库中插入更新数据之前,需要对其进行清理。 数据清理中最重要的任务之一是删除不必要的前导和尾随字符。
MySQL提供了一个非常有用的名称为TRIM()的字符串函数,以帮助您清理数据。下面说明了TRIM()函数的语法。

TRIM([{BOTH|LEADING|TRAILING} [removed_str]] FROM str)

TRIM函数提供了许多选项

您可以使用LEADINGTRAILINGBOTH选项明确指示TRIM()函数从字符串中删除前导,尾随或前导和尾随的不必要的字符。
如果您没有指定任何内容,TRIM()函数默认使用BOTH选项。
[removed_str]是要删除的字符串。默认情况下,它是一个空格。这意味着如果不指定特定的字符串,则TRIM()函数仅删除空格。
str是要删除子字符removed_str的字符串。
TRIM()函数返回一个字符串,删除不需要的字符。

MySQL TRIM函数示例

以下语句从字符串中除去前导和尾随空格。

mysql> SELECT TRIM(' MySQL TRIM Function ');
+-------------------------------+
| TRIM(' MySQL TRIM Function ') |
+-------------------------------+
| MySQL TRIM Function           |
+-------------------------------+
1 row in set

以下语句仅删除前导空格 -

mysql> SELECT TRIM(LEADING FROM '    MySQL TRIM Function   ');
+-------------------------------------------------+
| TRIM(LEADING FROM '    MySQL TRIM Function   ') |
+-------------------------------------------------+
| MySQL TRIM Function                             |
+-------------------------------------------------+
1 row in set

以下语句仅删除尾随空格 -

mysql> SELECT TRIM(TRAILING FROM '    MySQL TRIM Function   ');
+--------------------------------------------------+
| TRIM(TRAILING FROM '    MySQL TRIM Function   ') |
+--------------------------------------------------+
|     MySQL TRIM Function                          |
+--------------------------------------------------+
1 row in set

以下语句删除字符串末尾的换行符 -

-- 方式一
SELECT 
    TRIM(TRAILING '\n' FROM field_name)
FROM table_name;

-- 方式二
SELECT 
    TRIM(TRAILING '\r' FROM field_name)
FROM table_name;

-- 方式三
SELECT 
    TRIM(TRAILING '\r\n' FROM field_name)
FROM table_name;

请注意,基于平台,新行可以是\n(Unix或Linux),\r(Mac)或两者(\r\n)。
如果数据已经存在,并且要清理空格或任何其他不需要的字符,则可以在UPDATE语句中使用TRIM()函数。
我们将在示例数据库(yiibaidb)中的products表中进行演示,如下所示 -

mysql> desc products;
+--------------------+---------------+------+-----+---------+------------------+
| Field              | Type          | Null | Key | Default | Extra            |
+--------------------+---------------+------+-----+---------+------------------+
| productCode        | varchar(15)   | NO   | PRI |         |                  |
| productName        | varchar(70)   | NO   | MUL | NULL    |                  |
| productLine        | varchar(50)   | NO   | MUL | NULL    |                  |
| productScale       | varchar(10)   | NO   |     | NULL    |                  |
| productVendor      | varchar(50)   | NO   |     | NULL    |                  |
| productDescription | text          | NO   |     | NULL    |                  |
| quantityInStock    | smallint(6)   | NO   |     | NULL    |                  |
| buyPrice           | decimal(10,2) | NO   |     | NULL    |                  |
| MSRP               | decimal(10,2) | NO   |     | NULL    |                  |
| stockValue         | double        | YES  |     | NULL    | STORED GENERATED |
+--------------------+---------------+------+-----+---------+------------------+
10 rows in set

以下语句将删除products表中产品名称的所有空格并更新,如下查询语句 -

UPDATE products 
SET 
    productname = TRIM(productname);

请注意,TRIM函数仅从字符串中删除不需要的前导和/或后缀字符。如果要删除字符串中间不需要的字符,则应使用REPLACE函数。

MySQL LTRIM和RTRIM函数

如果要仅删除前导或尾随空格,则可以使用其他字符串函数:LTRIMRTRIM
以下语句使用LTRIM函数来删除字符串的前导空格。

SELECT LTRIM('  MySQL LTRIM function');

执行上面查询语句,得到以下结果 -

mysql> SELECT LTRIM('  MySQL LTRIM function');
+---------------------------------+
| LTRIM('  MySQL LTRIM function') |
+---------------------------------+
| MySQL LTRIM function            |
+---------------------------------+
1 row in set

以下语句使用RTRIM()函数来删除字符串的尾随空格。

SELECT RTRIM('MySQL RTRIM function   ');

执行上面查询语句,得到以下结果 -

mysql> SELECT RTRIM('MySQL RTRIM function   ');
+----------------------------------+
| RTRIM('MySQL RTRIM function   ') |
+----------------------------------+
| MySQL RTRIM function             |
+----------------------------------+
1 row in set

在本教程中,您已经学习了如何使用TRIM()函数从字符串中删除不需要的前导和后缀字符。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值