我是靠谱客的博主 细心橘子,最近开发中收集的这篇文章主要介绍MySQL SUBSTRING() 和 SUBSTR() 函数 – 如何在 MySQL 中提取子字符串?,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在本教程中,我们将了解 MySQLSUBSTRING()SUBSTR()函数。这两个函数做同样的事情,但名称不同。SUBSTRING()SUBSTR()用于从给定位置的给定字符串中提取子字符串。您还可以指定要提取到子字符串中的字符数。两者通常与SELECTStatement一起使用。


MySQL SUBSTRING() 和 SUBSTR() 的语法

两个函数都有相似的语法,区别仅在于函数名。这两个函数都有两种语法。您可以使用其中任何一种。

对于 SUBSTRING()

 
SUBSTRING(string, start, length);

代码语言: SQL(结构化查询语言) (sql )

或者

 
SUBSTRING(string FROM start FOR length);

代码语言: SQL(结构化查询语言) (sql )

对于 SUBSTR()

 
SUBSTR(string, start, length);

代码语言: SQL(结构化查询语言) (sql )

或者

 
SUBSTR(string FROM start FOR length);

代码语言: SQL(结构化查询语言) (sql )

对于这两个功能:

  • 参数 'string' 是要从中提取子字符串的字符串,
  • 参数“开始”是“字符串”中您要开始提取子字符串的位置,并且,
  • 参数“长度”是要提取的字符数。这是一个可选参数,如果省略,将返回从“开始”位置开始的整个字符串。

MySQL SUBSTRING() 和 SUBSTR() 的示例

让我们来看看 MySQL 中 SUBSTRING() 的一些示例。我们将使用别名来使我们的输出可读。

 
SELECT SUBSTR(‘Geography’, 4, 5) AS Result; SELECT SUBSTR(‘Geography’ FROM 4 FOR 5) AS Result; SELECT SUBSTR(‘North America’ FROM 7) AS Result; SELECT SUBSTR(‘North America’, 7) AS Result;

代码语言: SQL(结构化查询语言) (sql )

前两个查询本质上是相同的。这同样适用于最后两个查询。在前两个查询中,我们从位置 4 开始的字符串“Geography”中提取 5 个字符。

在最后两个查询中,我们从字符串“North America”中提取位置 7 之后的所有字符。我已经演示了这两种语法,以便您清楚地了解情况。使用您觉得舒服的任何语法。

我们得到的输出是,

让我们看看下面的查询。

 
SELECT SUBSTRING(‘New Delhi is the capital of India.’, 29, 5) AS Country; SELECT SUBSTRING(‘New Delhi is the capital of India.’ FROM 29 FOR 5) AS Country; SELECT SUBSTRING(‘JournalDev’, 8) AS Result; SELECT SUBSTRING(‘JournalDev’ FROM 8) AS Result;

代码语言: SQL(结构化查询语言) (sql )

同样,前两个查询本质上是相同的。这同样适用于最后两个查询。在前两个查询中,我们从字符串“New Delhi is the capital of India”中提取 5 个字符。从位置 29 开始。在最后两个查询中,我们从字符串“JournalDev”中提取位置 8 之后的所有字符。

使用您觉得舒服的任何语法。我们得到的输出是,

使用负整数

MySQLSUBSTRING()SUBSTR(). 负整数向后计数字符串。因此,如果您说位置 -1,那么它就是字符串中的最后一个字符。

如果你有一个值为 - 'Hello' 的字符串,并且你将位置参数指定为 -1,那么在 -1 处你有字母 'o'。

让我们看一些使用SUBSTRING()SUBSTR()使用负值作为位置参数的示例。

 
SELECT SUBSTRING(‘Intelligence’, -1) AS Result; SELECT SUBSTRING(‘Intelligence’, -5, 3) AS Result;

代码语言: SQL(结构化查询语言) (sql )

在第二个查询中,我们向后计数 5 个字符以获得字母“g”,然后从包含“g”的位置提取三个字符。输出是,

让我们看一下例子SUBSTR()

 
SELECT SUBSTR(‘Intelligence’, -12) AS Result; SELECT SUBSTR(‘Intelligence’, -12, 5) AS Result;

代码语言: SQL(结构化查询语言) (sql )

我们得到我们的输出,


使用表数据 – SUBSTRING() 和 SUBSTR()

考虑下面的 Employee 表。

员工表

示例 1

如何从 Department 列值中从位置 4 开始提取 3 个字符?让我们不要返回重复的值。为此,我们将使用DISTINCT关键字。

 
SELECT DISTINCT SUBSTR(Department, 4, 3) AS Result FROM Employee;

代码语言: SQL(结构化查询语言) (sql )

我们得到我们的输出,

示例 2

现在让我们使用一个名为的别名并将DepartmentCode其显示在我们的结果集中。DepartmentCode包含每个部门的前三个大写字符。同样,我们将只返回不同的值并使用UPPER()函数。

 
SELECT DISTINCT Department, UPPER(SUBSTRING(Department, 1, 3)) AS DepartmentCode FROM Employee;

代码语言: SQL(结构化查询语言) (sql )

输出是,

示例 3

如何从表中提取员工的名字?但是,每个名称要提取的字符数会有所不同,对吧?所以我们利用POSITION()函数。我们的查询是:

 
SELECT SUBSTR(Name, 1, POSITION(“ “ IN Name)) AS FirstName FROM Employee;

代码语言: SQL(结构化查询语言) (sql )

我们的输出是


结论

SUBSTRING()并且SUBSTR()是 MySQL 中使用最广泛的字符串函数之一。我建议你和他们一起玩并练习。


参考

  • MySQL 官方SUBSTRING()文档和SUBSTR().

最后

以上就是细心橘子为你收集整理的MySQL SUBSTRING() 和 SUBSTR() 函数 – 如何在 MySQL 中提取子字符串?的全部内容,希望文章能够帮你解决MySQL SUBSTRING() 和 SUBSTR() 函数 – 如何在 MySQL 中提取子字符串?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(66)

评论列表共有 0 条评论

立即
投稿
返回
顶部