摘要:在本教程中,我们将向您介绍MySQL SUBSTRING函数,该函数从字符串中提取子字符串。
SUBSTRING
函数从从特定位置开始的字符串中返回给定长度的子字符串。 MySQL提供了多种形式的子字符串函数。
我们将在以下部分中研究SUBSTRING
函数的每种形式。
带位置参数的 MySQL SUBSTRING
下面说明了SUBSTRING
函数的第一种形式:
SUBSTRING(string,position);
SUBSTRING(string FROM position);
Code language: SQL (Structured Query Language) (sql)
substring() 函数有两个参数:
string
指定您提取子字符串的字符串。- 该
position
是一个整数,指定子字符串的起始字符。position
可以是正整数或负整数。
如果位置为正,则SUBSTRING
函数从字符串的开头提取子字符串。请参阅以下字符串。
例如,要从“ MySQL SUBSTRING
”字符串中获取“ SUBSTRING
”,子字符串的位置必须为 7,如以下SELECT
语句所示:
SELECT SUBSTRING('MYSQL SUBSTRING', 7); -- SUBSTRING
Code language: SQL (Structured Query Language) (sql)
如果位置为负数,则SUBSTRING
函数从字符串末尾提取子字符串。请参阅以下“ MYSQL SUBSTRING
”字符串:
要使用负位置从“ MySQL SUBSTRING
”中获取“ SUBSTRING
”,必须将-10
传递给position
参数,如下所示:
SELECT SUBSTRING('MySQL SUBSTRING',-10); -- SUBSTRING
Code language: SQL (Structured Query Language) (sql)
请注意,如果位置为零,则SUBSTRING
函数返回空字符串:
SELECT SUBSTRING('MYSQL SUBSTRING', 0); -- ''
Code language: SQL (Structured Query Language) (sql)
除了 MySQL 特定的语法之外,您还可以使用带有FROM
关键字的 SQL 标准语法来调用SUBSTRING
函数。
例如,以下语句使用 SQL 标准语法从MySQL SUBSTRING
字符串获取SUBSTRING
:
SELECT SUBSTRING('MySQL SUBSTRING' FROM -10);
Code language: SQL (Structured Query Language) (sql)
MySQL SUBSTRING 的位置和长度
如果要指定要从字符串中提取的子字符串的长度,可以使用以下形式的SUBSTRING
函数:
SUBSTRING(string,position,length);
Code language: SQL (Structured Query Language) (sql)
以下是上述语句的 SQL 标准版本,它更长但更具表现力。
SUBSTRING(string FROM position FOR length);
Code language: SQL (Structured Query Language) (sql)
除了字符串和位置参数之外, SUBSTRING
函数还有一个附加的长度参数。长度是一个正整数,指定子字符串的字符数。
如果位置和长度之和大于字符串的字符数,则SUBSTRING
函数返回从该位置开始到字符串末尾的子字符串。
例如,要从“ MySQL SUBSTRING
”中获取“ MySQL
”,请使用以下语句:
SELECT SUBSTRING('MySQL SUBSTRING',1,5); -- MySQL
Code language: SQL (Structured Query Language) (sql)
或者
SELECT SUBSTRING('MySQL SUBSTRING' FROM 1 FOR 5); -- MySQL
Code language: SQL (Structured Query Language) (sql)
如果您想使用负位置,请使用以下语句:
SELECT SUBSTRING('MySQL SUBSTRING',-15,5); -- MySQL
Code language: SQL (Structured Query Language) (sql)
或者使用FROM FOR
语法:
SELECT SUBSTRING('MySQL SUBSTRING' FROM -15 FOR 5); -- MySQL
Code language: SQL (Structured Query Language) (sql)
SUBSTR()
是SUBSTRING()
的同义词,因此您可以互换使用它们。
在本教程中,您了解了SUBSTRING
函数,该函数从从特定位置开始的字符串中提取给定长度的子字符串。