📅  最后修改于: 2023-12-03 15:33:02.061000             🧑  作者: Mango
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 语句中的值处理。