MariaDB SUBSTR() 函数使用指南

在 MariaDB 中,SUBSTR() 是一个内置的字符串函数,它从一个字符串中返回一个从指定位置开始的指定长度的子字符串。

SUBSTR()SUBSTRING() 的同义词。

MariaDB SUBSTR() 语法

MariaDB SUBSTR() 函数有 4 种形式的语法:

SUBSTR(str, pos)
SUBSTR(str, pos, len)
SUBSTR(str FROM pos)
SUBSTR(str FROM pos FOR len)

使用 FROM 关键字的两种形式是标准 SQL 语法。

MID(str, pos, len) 等同于 SUBSTR(str, pos, len) 函数。

参数

str
必需的。从中提取子字符串的原字符串。
pos
必需的。开始提取的位置。它可以是正数或者负数。如果是正数,则从字符串的开头为起始位置确定开始提取的位置提取子字符串。如果是负数,则从字符串的结尾为起始位置确定开始提取的位置提取子字符串。
len
可选的。子字符串的长度(字符数)。如果不指定,则提取到原字符串的结尾。

如果您未提供任何参数,MariaDB 将报告一个错误:ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1

返回值

MariaDB SUBSTR() 函数从原字符串的指定位置开始提取指定长度的子字符串并返回。

如果 pos0 或者超过原字符串的长度, SUBSTR() 函数将返回空串 ''。 如果处于 Oracle 模式, pos0 等同于 1

如果 pos 为负数, SUBSTR() 函数从字符串尾部向前计数。

如果 pos + len 超过原字符串的长度, SUBSTR() 函数提取到原字符串的结尾。

如果参数为 NULLSUBSTR() 函数将返回 NULL

MariaDB SUBSTR() 示例

基本用法

这个语句显示了 MariaDB SUBSTR() 函数的基本用法:

SELECT SUBSTR('Hello World', 7);

输出:

+--------------------------+
| SUBSTR('Hello World', 7) |
+--------------------------+
| World                    |
+--------------------------+

现在的语句展示了达到相同效果的不同写法:

SELECT
  SUBSTR('Hello World', 7),
  SUBSTR('Hello World', 7, 5),
  SUBSTR('Hello World' FROM 7),
  SUBSTR('Hello World' FROM 7 FOR 5)\G

输出:

          SUBSTR('Hello World', 7): World
       SUBSTR('Hello World', 7, 5): World
      SUBSTR('Hello World' FROM 7): World
SUBSTR('Hello World' FROM 7 FOR 5): World

负数位置

为位置指定负值会导致起始位置从字符串末尾向后计数:

SELECT SUBSTR('Hello World', -5);

输出:

+---------------------------+
| SUBSTR('Hello World', -5) |
+---------------------------+
| World                     |
+---------------------------+

结论

在 MariaDB 中,SUBSTR() 是一个内置的字符串函数,它从一个字符串中返回一个从指定位置开始的指定长度的子字符串。