MariaDB 函数

MariaDB SUBSTRING() 函数用于从指定位置开始的字符串中提取子字符串。

SUBSTR()MID() 函数是以下函数的同义词SUBSTRING() 函数。

语法

/* 版本1 */
SUBSTRING(string, start, length)

/* 版本2 */
SUBSTRING(string FROM start FOR length) 

参数

string必填。 指定要从中提取的字符串。
start必填。 指定起始位置。它可以是正数也可以是负数。
  • 如果是正数,则该函数从字符串的开头提取。
  • 如果是负数,则该函数从字符串的末尾提取.
请注意,字符串中的第一个位置以 1 开头。
length可选。 指定要提取的字符数。如果省略,将返回整个字符串(从start位置开始)。

返回值

返回从指定字符串中提取的子字符串。

示例1:

下面的示例显示了SUBSTRING()的用法

SELECT SUBSTRING('Yxjc123.com', 1);
Result: 'Yxjc123.com'

SELECT SUBSTRING('Yxjc123.com' FROM 1);
Result: 'Yxjc123.com'

SELECT SUBSTRING('Yxjc123.com', 6);
Result: '23.com'

SELECT SUBSTRING('Yxjc123.com' FROM 6);
Result: '23.com'

SELECT SUBSTRING('Yxjc123.com', 6, 6);
Result: '23.com'

SELECT SUBSTRING('Yxjc123.com' FROM 6 FOR 6);
Result: '23.com'

SELECT SUBSTRING('Yxjc123.com', -4, 4);
Result: '.com'

SELECT SUBSTRING('Yxjc123.com' FROM -4 FOR 4);
Result: '.com' 

示例 2:

考虑一个名为 Employee 的数据库表,其中包含以下记录:

PhoneNumberEmpIDAddress
+33-1479961011Grenelle, Paris, France
+31-2011503192Geuzenveld, Amsterdam, Netherlands
+86-10997324583Yizhuangzhen, Beijing, China
+65-672348244Yishun, Singapore
+81-3577990725Koto City, Tokyo, Japan

在下面的查询中,SUBSTRING() 函数用于从 PhoneNumber 列记录中提取国家/地区代码。

SELECT *, SUBSTRING(PhoneNumber, 2, 2) AS CountryCode 
FROM Employee; 

这将产生结果如下图:

PhoneNumberEmpIDAddressCountryCode
+33-1479961011Grenelle, Paris, France33
+31-2011503192Geuzenveld, Amsterdam, Netherlands31
+86-10997324583Yizhuangzhen, Beijing, China86
+65-672348244Yishun, Singapore65
+81-3577990725Koto City, Tokyo, Japan81