MariaDB SUBSTRING() 函数使用指南
在 MariaDB 中,SUBSTRING()
是一个内置的字符串函数,它从一个字符串中返回一个从指定位置开始的指定长度的子字符串。
SUBSTR()
是 SUBSTRING()
的同义词。
MariaDB SUBSTRING()
语法
MariaDB SUBSTRING()
函数有 4 种形式的语法:
SUBSTRING(str, pos)
SUBSTRING(str, pos, len)
SUBSTRING(str FROM pos)
SUBSTRING(str FROM pos FOR len)
使用 FROM
关键字的两种形式是标准 SQL 语法。
MID(str, pos, len)
等同于 SUBSTRING(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 SUBSTRING()
函数从原字符串的指定位置开始提取指定长度的子字符串并返回。
如果 pos
为 0
或者超过原字符串的长度, SUBSTRING()
函数将返回空串 ''
。 如果处于 Oracle 模式, pos
为 0
等同于 1
。
如果 pos
为负数, SUBSTRING()
函数从字符串尾部向前计数。
如果 pos + len
超过原字符串的长度, SUBSTRING()
函数提取到原字符串的结尾。
如果参数为 NULL
, SUBSTRING()
函数将返回 NULL
。
MariaDB SUBSTRING()
示例
基本用法
这个语句显示了 MariaDB SUBSTRING()
函数的基本用法:
SELECT SUBSTRING('Hello World', 7);
输出:
+-----------------------------+
| SUBSTRING('Hello World', 7) |
+-----------------------------+
| World |
+-----------------------------+
现在的语句展示了达到相同效果的不同写法:
SELECT
SUBSTRING('Hello World', 7),
SUBSTRING('Hello World', 7, 5),
SUBSTRING('Hello World' FROM 7),
SUBSTRING('Hello World' FROM 7 FOR 5)\G
输出:
SUBSTRING('Hello World', 7): World
SUBSTRING('Hello World', 7, 5): World
SUBSTRING('Hello World' FROM 7): World
SUBSTRING('Hello World' FROM 7 FOR 5): World
负数位置
为位置指定负值会导致起始位置从字符串末尾向后计数:
SELECT SUBSTRING('Hello World', -5);
输出:
+------------------------------+
| SUBSTRING('Hello World', -5) |
+------------------------------+
| World |
+------------------------------+
结论
在 MariaDB 中,SUBSTRING()
是一个内置的字符串函数,它从一个字符串中返回一个从指定位置开始的指定长度的子字符串。