概述
在本教程中,我们将了解 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 中提取子字符串?所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复