MariaDB SUBSTRING() 函数的基础用法与实例
MariaDB SUBSTRING()
函数用来从一个字符串中提取子字符串。
发布于
MariaDB SUBSTRING()
函数用来从一个字符串中提取子字符串。它可以在需要获取字符串中的一部分时使用,比如从电子邮件地址中提取用户名、从文件路径中提取文件名等场景。
语法
MariaDB SUBSTRING()
函数的语法如下:
SUBSTRING(str, pos, [len])
str
是要提取子字符串的源字符串。pos
是子字符串的起始位置,字符串的第一个字符从位置 1 开始。如果pos
为正值,则从左边开始提取;如果为负值,则从右边开始提取。len
是可选的,指定要返回的字符数。如果省略,则返回从指定位置到字符串末尾的所有字符。
该函数返回从字符串 str
开始的从 pos
开始长度为 len
的子字符串。
实例
从字符串中提取前几个字符
SELECT SUBSTRING('MariaDB Rocks', 1, 7);
以下是该语句的输出:
+----------------------------------+
| SUBSTRING('MariaDB Rocks', 1, 7) |
+----------------------------------+
| MariaDB |
+----------------------------------+
本示例从 'MariaDB Rocks'
字符串的第 1 个字符开始,提取长度为 7 的子字符串。
从字符串中提取后几个字符
SELECT SUBSTRING('MariaDB Rocks', -5);
以下是该语句的输出:
+--------------------------------+
| SUBSTRING('MariaDB Rocks', -5) |
+--------------------------------+
| Rocks |
+--------------------------------+
本示例从 'MariaDB Rocks'
字符串的倒数第 5 个字符开始,提取到字符串末尾的子字符串。
从字符串中提取中间一段
DROP TABLE IF EXISTS employees;
CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(100)
);
INSERT INTO employees VALUES
(1, 'John Doe'),
(2, 'Jane Smith'),
(3, 'Michael Johnson');
SELECT id, SUBSTRING(name, 1, 4) AS first_name
FROM employees;
以下是该语句的输出:
+----+------------+
| id | first_name |
+----+------------+
| 1 | John |
| 2 | Jane |
| 3 | Mich |
+----+------------+
本示例从 employees
表中的 name
字段提取前 4 个字符,作为员工的名字的简写。
去除字符串中的前缀和后缀
SELECT
SUBSTRING('__Hello__', 3, CHAR_LENGTH('__Hello__') - 4) AS no_underscores;
以下是该语句的输出:
+----------------+
| no_underscores |
+----------------+
| Hello |
+----------------+
本示例从字符串 '__Hello__'
中提取除去前两个和后两个下划线字符的子字符串。
模糊查找文件名
DROP TABLE IF EXISTS files;
CREATE TABLE files (id INT PRIMARY KEY, path VARCHAR(255));
INSERT INTO files VALUES
(1, '/var/www/html/index.php'),
(2, '/var/www/logs/error.log'),
(3, '/etc/my.cnf');
SELECT id, SUBSTRING_INDEX(path, '/', -1) AS filename
FROM files
WHERE SUBSTRING_INDEX(path, '/', -1) LIKE '%.php';
以下是该语句的输出:
+----+-----------+
| id | filename |
+----+-----------+
| 1 | index.php |
+----+-----------+
本示例从 files
表中查找文件路径,并提取最后一部分文件名。SUBSTRING_INDEX
函数用于分隔路径中的目录与文件名,查询条件则用于筛选出 .php
结尾的文件。
相关函数
以下是几个与 MariaDB SUBSTRING()
相关的几个函数:
- MariaDB
SUBSTRING_INDEX()
函数用来从字符串中返回一个子字符串,该子字符串从字符串开始处,直到第 n 次出现指定的分隔符为止。 - MariaDB
REPLACE()
函数用于替换字符串中的指定字符或子字符串。 - MariaDB
CONCAT()
函数用来连接两个或多个字符串。 - MariaDB
TRIM()
函数用来去除字符串两端的指定字符。
结论
MariaDB SUBSTRING()
函数是一个非常有用的字符串处理函数,可以在许多场景下使用。通过合理利用该函数及其相关函数,可以高效地提取、替换和操作字符串数据。在编写 SQL 查询或存储过程时,掌握这些字符串函数无疑会提高开发效率。