跳到主要内容

SUBSTRING

描述

SUBSTRING 函数用于从字符串中提取子字符串。可以指定起始位置和长度,支持正向和反向提取。字符串中第一个字符的位置为 1。

别名

SUBSTR

语法

SUBSTRING(<str>, <pos> [, <len>])

参数

参数说明
<str>源字符串。类型:VARCHAR
<pos>起始位置,可以为负数。类型:INT
<len>可选参数,要提取的长度。类型:INT

返回值

返回 VARCHAR 类型,表示提取的子字符串。

特殊情况:

  • 如果任意参数为 NULL,返回 NULL
  • 如果 pos 为 0,返回空字符串
  • 如果 pos 为负数,从字符串末尾开始向前计数
  • 如果 pos 超出字符串长度,返回空字符串
  • 如果不指定 len,则返回从 pos 到字符串末尾的所有字符

示例

  1. 基本用法(指定起始位置)
SELECT substring('abc1', 2);
+-----------------------------+
| substring('abc1', 2) |
+-----------------------------+
| bc1 |
+-----------------------------+
  1. 使用负数位置
SELECT substring('abc1', -2);
+-----------------------------+
| substring('abc1', -2) |
+-----------------------------+
| c1 |
+-----------------------------+
  1. 位置为 0 的情况
SELECT substring('abc1', 0);
+----------------------+
| substring('abc1', 0) |
+----------------------+
| |
+----------------------+
  1. 位置超出字符串长度
SELECT substring('abc1', 5);
+-----------------------------+
| substring('abc1', 5) |
+-----------------------------+
| |
+-----------------------------+
  1. 指定长度参数
SELECT substring('abc1def', 2, 2);
+-----------------------------+
| substring('abc1def', 2, 2) |
+-----------------------------+
| bc |
+-----------------------------+