MariaDB TRIM() 函数使用指南

在 MariaDB 中,TRIM() 是一个内置的字符串函数,它用于从指定字符串的开头或结尾删除由指定字符组成的最长字符串。

如果您只想删除字符串的前导空格,请使用 LTRIM()LTRIM_ORACLE() 函数。

如果您只想删除字符串的尾随空格,请使用 RTRIM()RTRIM_ORACLE() 函数。

MariaDB TRIM() 语法

这里是 MariaDB TRIM() 函数的几种不同的用法:

TRIM(str)
TRIM(remove_str FROM str)
TRIM({BOTH | LEADING | TRAILING} remove_str FROM str)

这里:

  • BOTH 代表同时删除前导和尾随的字符
  • LEADING 代表只删除前导字符
  • TRAILING 代表只删除尾随的字符
  • 如果不指定 {BOTH | LEADING | TRAILING},则默认值为 BOTH

参数

str
必需的。需要处理的字符串。
remove_str
可选的。需要删除的前缀和后缀字符串。如果不指定这个 remove_str,则默认值为空格。

返回值

MariaDB TRIM() 函数返回一个字符串,它从指定字符串的开头或结尾删除了由指定字符组成的最长字符串。

如果在 Oracle 模式,当返回值一个空字符串时, TRIM() 函数将返回一个 NULL 值。

当参数为 NULL 时, TRIM() 函数将返回 NULL

MariaDB TRIM() 示例

删除两端空白

下面的语句展示了使用 MariaDB TRIM() 函数删除字符串两端的空白 2 种用法:

SELECT
  TRIM('   Hello   '),
  TRIM(BOTH FROM '   Hello   ');

输出:

+---------------------+-------------------------------+
| TRIM('   Hello   ') | TRIM(BOTH FROM '   Hello   ') |
+---------------------+-------------------------------+
| Hello               | Hello                         |
+---------------------+-------------------------------+

删除前导空白

下面的语句展示了如何使用 MariaDB TRIM() 函数删除字符串前导空白:

SELECT TRIM(LEADING FROM '   Hello   ');

输出:

+----------------------------------+
| TRIM(LEADING FROM '   Hello   ') |
+----------------------------------+
| Hello                            |
+----------------------------------+

删除结尾空白

下面的语句展示了如何使用 MariaDB TRIM() 函数删除字符串结尾空白:

SELECT TRIM(TRAILING FROM '   Hello   ');

输出:

+-----------------------------------+
| TRIM(TRAILING FROM '   Hello   ') |
+-----------------------------------+
|    Hello                          |
+-----------------------------------+

删除其他字符

下面的语句展示了如何使用 MariaDB TRIM() 函数删除字符串开头或者结尾的指定字符:

SELECT
  TRIM('_' FROM '___Hello___'),
  TRIM(BOTH '_' FROM '___Hello___'),
  TRIM(LEADING '_' FROM '___Hello___'),
  TRIM(TRAILING '_' FROM '___Hello___'),
  TRIM('_#' FROM '_#_#_Hello_#_#'),
  TRIM(BOTH '_#' FROM '_#_#_Hello_#_#'),
  TRIM(LEADING '_#' FROM '_#_#_Hello_#_#'),
  TRIM(TRAILING '_#' FROM '_#_#_Hello_#_#')\G

输出:

*************************** 1. row ***************************
             TRIM('_' FROM '___Hello___'): Hello
        TRIM(BOTH '_' FROM '___Hello___'): Hello
     TRIM(LEADING '_' FROM '___Hello___'): Hello___
    TRIM(TRAILING '_' FROM '___Hello___'): ___Hello
         TRIM('_#' FROM '_#_#_Hello_#_#'): _Hello
    TRIM(BOTH '_#' FROM '_#_#_Hello_#_#'): _Hello
 TRIM(LEADING '_#' FROM '_#_#_Hello_#_#'): _Hello_#_#
TRIM(TRAILING '_#' FROM '_#_#_Hello_#_#'): _#_#_Hello

Oracle 模式

在 Oracle 模式下, 如果 TRIM() 返回的字符串为空, 那么它将返回 NULL

在默认模式下,下面的语句将返回一个空字符串:

SELECT TRIM('   ');

输出:

+-------------+
| TRIM('   ') |
+-------------+
|             |
+-------------+

使用下面的语句切换到 Oracle 模式:

SET SQL_MODE=ORACLE;

并再次运行代码:

SELECT TRIM('   ');

输出:

+-------------+
| TRIM('   ') |
+-------------+
| NULL        |
+-------------+

在 Oracle 模式下, TRIM() 表现的与 TRIM_ORACLE() 函数完全一样。

结论

在 MariaDB 中,TRIM() 是一个内置的字符串函数,它用于从指定字符串的开头或结尾删除由指定字符组成的最长字符串。在 Oracle 模式下, TRIM() 函数与 TRIM_ORACLE() 完全相同。