MariaDB SUBSTRING_INDEX() 函数的基础用法与实例
MariaDB SUBSTRING_INDEX()
函数用来从字符串中提取子字符串,以指定的分隔符为界限。
发布于
MariaDB SUBSTRING_INDEX()
函数用来从字符串中提取子字符串,以指定的分隔符为界限。它常用于从字符串中提取多级路径名称、电话号码区号或者 URL 中的各部分等。
语法
MairaDB SUBSTRING_INDEX()
函数的语法如下:
SUBSTRING_INDEX(str, delim, count)
str
: 要进行子字符串提取的源字符串。delim
: 分隔符,在str
中作为子字符串提取的界限。count
: 一个正数返回第count
个分隔符前的子字符串,一个负数返回从右边开始的第-count
个分隔符之后的子字符串。
该函数返回从 str
中提取的子字符串。
实例
从左侧获取第 N 个子字符串
此示例展示了如何从左侧获取第 N 个子字符串。
SELECT SUBSTRING_INDEX('www.example.com', '.', 2);
以下是该语句的输出:
+--------------------------------------------+
| SUBSTRING_INDEX('www.example.com', '.', 2) |
+--------------------------------------------+
| www.example |
+--------------------------------------------+
从右侧获取第 N 个子字符串
此示例展示了如何从右侧获取第 N 个子字符串。
SELECT SUBSTRING_INDEX('www.example.com', '.', -2);
以下是该语句的输出:
+---------------------------------------------+
| SUBSTRING_INDEX('www.example.com', '.', -2) |
+---------------------------------------------+
| example.com |
+---------------------------------------------+
获取文件扩展名
此示例展示了如何使用 SUBSTRING_INDEX()
提取文件扩展名。
SELECT SUBSTRING_INDEX('example.tar.gz', '.', -1) AS extension;
以下是该语句的输出:
+-----------+
| extension |
+-----------+
| gz |
+-----------+
获取地址省市区
此示例展示了如何使用 SUBSTRING_INDEX()
从地址字符串中提取省市区。
DROP TABLE IF EXISTS users;
CREATE TABLE users (id INT, address VARCHAR(100));
INSERT INTO users VALUES
(1, '北京市海淀区中关村南大街9号'),
(2, '上海市静安区南京西路789号'),
(3, '广州市天河区天河北路233号');
SELECT id,
SUBSTRING_INDEX(address, '市', 1) AS province,
SUBSTRING_INDEX(SUBSTRING_INDEX(address, '市', -1), '区', 1) AS city,
SUBSTRING_INDEX(address, '区', -1) AS district
FROM users;
以下是该语句的输出:
+------+----------+------+-----------------+
| id | province | city | district |
+------+----------+------+-----------------+
| 1 | 北京 | 海淀 | 中关村南大街9号 |
| 2 | 上海 | 静安 | 南京西路789号 |
| 3 | 广州 | 天河 | 天河北路233号 |
+------+----------+------+-----------------+
相关函数
以下是几个与 MairaDB SUBSTRING_INDEX()
相关的函数:
- MariaDB
SUBSTR()
函数用来从字符串中提取子字符串,以位置和长度为界限。 - MariaDB
LOCATE()
函数用来查找子字符串在字符串中的位置。 - MariaDB
INSTR()
函数也用来查找子字符串在字符串中的位置,但是参数顺序与LOCATE()
不同。 - MariaDB
REPLACE()
函数用来替换字符串中的子字符串。
结论
MariaDB SUBSTRING_INDEX()
函数是处理带分隔符的字符串数据的利器,可以轻松地从字符串中提取出需要的子字符串。与相关的字符串函数联合使用,能让字符串处理更加高效、灵活。在许多场景都能发挥作用,如 URL 解析、数据规范化、文本切分等,为数据处理提供了强有力的支持。在日常开发中,合理利用这些函数可以大大减少代码量,提高工作效率。