MySQL SUBSTRING函数

时间:2019-11-20 08:52:25  来源:igfitidea点击:

简介:在本教程中,我们将向您介绍MySQL SUBSTRING函数,该函数从字符串中提取子字符串。

SUBSTRING函数从指定位置开始的字符串返回给定长度的子字符串。
MySQL提供了各种形式的子字符串函数。

在以下各节中,我们将检查SUBSTRING函数的每种形式。

带位置参数的MySQL SUBSTRING

下面说明了SUBSTRING函数的第一种形式。

SUBSTRING(string,position);
SUBSTRING(string FROM position);

有两个参数:

  • 字符串参数是您提取子字符串的字符串。

  • position参数是一个整数,它指定子字符串的起始字符。
    该位置可以是正整数或负整数。

如果位置为正,则SUBSTRING函数从字符串的开头提取子字符串。
请参阅以下字符串。

例如,要从" MySQL SUBSTRING"字符串中获取" SUBSTRING",子字符串的位置必须为7,如以下SELECT语句所示:

SELECT SUBSTRING('MYSQL SUBSTRING', 7);

如果位置为负,则SUBSTRING函数从字符串的末尾提取子字符串。
请参见以下" MYSQL SUBSTRING"字符串:

要使用负数从" MySQL SUBSTRING"中获取" SUBSTRING",必须将-10传递给position参数,如下所示:

SELECT SUBSTRING('MySQL SUBSTRING',-10);

请注意,如果位置为零,则SUBSTRING函数将返回一个空字符串:

SELECT SUBSTRING('MYSQL SUBSTRING', 0);

除了特定于MySQL的语法外,您还可以将SQL标准语法与FROM关键字一起使用,以调用SUBSTRING函数。

例如,以下语句使用SQL标准语法从MySQL SUBSTRING字符串获取SUBSTRING:

SELECT SUBSTRING('MySQL SUBSTRING' FROM -10);

MySQL SUBSTRING的位置和长度

如果要指定要从字符串中提取的子字符串的长度,则可以使用以下形式的SUBSTRING函数:

SUBSTRING(string,position,length);

以下是上述语句的SQL标准版本,它更长,但更具表达性。

SUBSTRING(string FROM position FOR length);

除了字符串和位置参数外,SUBSTRING函数还有一个额外的长度参数。
长度是一个正整数,它指定子字符串的字符数。

如果位置和长度的总和大于字符串的字符数,则SUBSTRING函数将返回一个从字符串位置到字符串结尾的子字符串。

例如,要从" MySQL SUBSTRING"中获取" MySQL",可以使用以下语句:

SELECT SUBSTRING('MySQL SUBSTRING',1,5);

要么

SELECT SUBSTRING('MySQL SUBSTRING' FROM 1 FOR 5);

如果要使用负数,请使用以下语句:

SELECT SUBSTRING('MySQL SUBSTRING',-15,5);

或使用FROM FOR语法:

SELECT SUBSTRING('MySQL SUBSTRING' FROM -15 FOR 5);

SUBSTR()是SUBSTRING()的同义词,因此您可以互换使用它们。

在本教程中,您学习了SUBSTRING函数,该函数从特定位置开始的字符串中提取具有给定长度的子字符串。