MySQL SUBSTRING Function

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

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

我们将在以下部分中研究SUBSTRING函数的每种形式。

带位置参数的 MySQL SUBSTRING

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

SUBSTRING(string,position);
SUBSTRING(string FROM position);Code language: SQL (Structured Query Language) (sql)

substring() 函数有两个参数:

  1. string指定您提取子字符串的字符串。
  2. position是一个整数,指定子字符串的起始字符。 position可以是正整数或负整数。

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

MySQL substring - string demo

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

SELECT SUBSTRING('MYSQL SUBSTRING', 7); -- SUBSTRINGCode language: SQL (Structured Query Language) (sql)

试试看

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

MySQL具有负数位置的substring函数

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

SELECT SUBSTRING('MySQL SUBSTRING',-10); --  SUBSTRINGCode 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 ”,请使用以下语句:

MySQL substring - string demo
SELECT SUBSTRING('MySQL SUBSTRING',1,5); -- MySQLCode language: SQL (Structured Query Language) (sql)

试试看

或者

SELECT SUBSTRING('MySQL SUBSTRING' FROM 1 FOR 5); -- MySQL
Code language: SQL (Structured Query Language) (sql)

试试看

如果您想使用负位置,请使用以下语句:

MySQL具有负数位置的substring函数
SELECT SUBSTRING('MySQL SUBSTRING',-15,5); -- MySQLCode language: SQL (Structured Query Language) (sql)

试试看

或者使用FROM FOR语法:

SELECT SUBSTRING('MySQL SUBSTRING' FROM -15 FOR 5); -- MySQLCode language: SQL (Structured Query Language) (sql)

试试看

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

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

本教程有帮助吗?