MariaDB SUBSTR() 函数的基础用法与实例

MariaDB SUBSTR() 函数用来从字符串中提取子字符串。

发布于

MariaDB SUBSTR() 函数用来从字符串中提取子字符串。它是处理字符串数据非常有用的函数,可以在很多场景下使用,如截取固定长度的字符、提取文件扩展名、隐藏手机号码中间数字等。

语法

MairaDB SUBSTR() 函数的语法如下:

SUBSTR(str, pos, [len])
  • str: 要提取子字符串的源字符串。
  • pos: 子字符串的起始位置,正值从左边开始,负值从右边开始。
  • len: 可选参数,表示要返回的字符数量。如果省略,则返回剩余的全部字符。

该函数返回从 str 中提取的子字符串。

实例

从左侧截取固定长度子字符串

此示例展示了如何从左侧截取指定长度的子字符串。

SELECT SUBSTR('Hello World', 1, 5);

以下是该语句的输出:

+-----------------------------+
| SUBSTR('Hello World', 1, 5) |
+-----------------------------+
| Hello                       |
+-----------------------------+

从右侧截取固定长度子字符串

此示例展示了如何从右侧截取指定长度的子字符串。

SELECT SUBSTR('Hello World', -5);

以下是该语句的输出:

+---------------------------+
| SUBSTR('Hello World', -5) |
+---------------------------+
| World                     |
+---------------------------+

删除文件路径获取文件名

此示例展示了如何使用 SUBSTR() 从文件路径中提取文件名。

SELECT SUBSTR('C:/Program Files/MySQL/bin/mysql.exe', INSTR('C:/Program Files/MySQL/bin/mysql.exe', '/')+1) AS file_name;

以下是该语句的输出:

+-----------------------------------+
| file_name                         |
+-----------------------------------+
| Program Files/MySQL/bin/mysql.exe |
+-----------------------------------+

隐藏手机号码中间数字

此示例展示了如何使用 SUBSTR() 隐藏手机号码中间的数字。

DROP TABLE IF EXISTS users;
CREATE TABLE users (id INT, phone VARCHAR(20));
INSERT INTO users VALUES (1, '13812345678'), (2, '15723456789'), (3, '18611112222');

SELECT id, CONCAT(SUBSTR(phone,1,3), '****', SUBSTR(phone,-4)) AS masked_phone
FROM users;

以下是该语句的输出:

+------+--------------+
| id   | masked_phone |
+------+--------------+
|    1 | 138****5678  |
|    2 | 157****6789  |
|    3 | 186****2222  |
+------+--------------+

按固定长度截断字符串

此示例展示了如何使用 SUBSTR() 按固定长度截断过长的字符串。

DROP TABLE IF EXISTS products;
CREATE TABLE products (id INT, name VARCHAR(100));
INSERT INTO products VALUES (1, '高端显示器'), (2, '超薄笔记本电脑'), (3, '智能机器人玩具');

SELECT id, SUBSTR(name, 1, 6) AS short_name
FROM products;

以下是该语句的输出:

+------+--------------+
| id   | short_name   |
+------+--------------+
|    1 | 高端显示器   |
|    2 | 超薄笔记本电 |
|    3 | 智能机器人玩 |
+------+--------------+

相关函数

以下是几个与 MairaDB SUBSTR() 相关的函数:

  • MariaDB LEFT() 函数用来获取字符串左侧指定长度的子字符串。
  • MariaDB RIGHT() 函数用来获取字符串右侧指定长度的子字符串。
  • MariaDB SUBSTRING() 函数与 SUBSTR() 作用相同,提取子字符串。
  • MariaDB INSTR() 函数用来查找子字符串在源字符串中的位置。
  • MariaDB REPLACE() 函数用来替换字符串中的子字符串。

结论

MariaDB SUBSTR() 函数是处理字符串数据的重要工具,可以轻松地提取指定位置和长度的子字符串。结合其他字符串函数,可以完成更多更复杂的字符串操作,如格式化、清理、检查等,为数据处理提供了强大的支持。在日常开发中,合理利用这些函数可以大大减少代码量,提高工作效率。