SUBSTRING
描述
SUBSTRING 函数用于从字符串中提取子字符串。可以指定起始位置和长度,支持正向和反向提取。字符串中第一个字符的位置为 1。
别名
SUBSTR
语法
SUBSTRING(<str>, <pos> [, <len>])
参数
参数 | 说明 |
---|---|
<str> | 源字符串。类型:VARCHAR |
<pos> | 起始位置,可以为负数。类型:INT |
<len> | 可选参数,要提取的长度。类型:INT |
返回值
返回 VARCHAR 类型,表示提取的子字符串。
特殊情况:
- 如果任意参数为 NULL,返回 NULL
- 如果 pos 为 0,返回空字符串
- 如果 pos 为负数,从字符串末尾开始向前计数
- 如果 pos 超出字符串长度,返回空字符串
- 如果不指定 len,则返回从 pos 到字符串末尾的所有字符
示例
- 基本用法(指定起始位置)
SELECT substring('abc1', 2);
+-----------------------------+
| substring('abc1', 2) |
+-----------------------------+
| bc1 |
+-----------------------------+
- 使用负数位置
SELECT substring('abc1', -2);
+-----------------------------+
| substring('abc1', -2) |
+-----------------------------+
| c1 |
+-----------------------------+
- 位置为 0 的情况
SELECT substring('abc1', 0);
+----------------------+
| substring('abc1', 0) |
+----------------------+
| |
+----------------------+
- 位置超出字符串长度
SELECT substring('abc1', 5);
+-----------------------------+
| substring('abc1', 5) |
+-----------------------------+
| |
+-----------------------------+
- 指定长度参数
SELECT substring('abc1def', 2, 2);
+-----------------------------+
| substring('abc1def', 2, 2) |
+-----------------------------+
| bc |
+-----------------------------+