📜  MySQL String SUBSTRING()函数(1)

📅  最后修改于: 2023-12-03 15:33:02.061000             🧑  作者: Mango

MySQL String SUBSTRING()函数

MySQL String SUBSTRING()函数用于从字符串中提取一个指定长度的子串。

语法
SUBSTRING(str, pos, len)

参数说明:

  • str:要处理的字符串;
  • pos:要提取的子串的起始位置。其中,位置从 1 开始计算,也就是说,第一个字符的位置是 1,第二个字符的位置是 2,以此类推。如果 pos 是一个负数,则从字符串的末尾开始计算位置。比如,-1 表示最后一个字符的位置,-2 表示倒数第二个字符的位置,以此类推;
  • len:要提取的子串的长度。如果省略了这个参数,则会返回从起始位置到字符串结尾的所有字符。
实例

假设我们有一个字符串 Hello World!,现在要提取其中的子串 World,可以使用如下 SQL 语句:

SELECT SUBSTRING('Hello World!', 7, 5);

执行结果:

World

解释:'Hello World!' 是要处理的字符串,7 是要提取的子串的起始位置(也就是第 7 个字符 W 的位置),5 是要提取的子串的长度(即子串 World 的长度)。

下面再来看一个例子。假设我们有一个用户表 users,其中有一个 name 字段,其类型为 VARCHAR(50)。现在我们要将其中的姓氏提取出来,可以使用如下 SQL 语句:

SELECT SUBSTRING(name, 1, LOCATE(' ', name) - 1) AS surname FROM users;

解释:name 是要处理的字符串,1 是要提取的子串的起始位置(即字符串的第一个字符),LOCATE(' ', name) - 1 是要提取的子串的长度,其中 LOCATE(' ', name) 是查找字符串中第一个空格的位置,而 -1 则是因为要去掉空格,只留下姓氏。

总结

MySQL String SUBSTRING()函数可以方便地从字符串中提取出指定长度的子串,有助于开发者快速处理字符串类型的数据。除了在 SELECT 语句中使用之外,该函数也可以用于 INSERT 或 UPDATE 语句中的值处理。