MariaDB 函数

MariaDB SUBSTRING_INDEX() 函数返回分隔符出现次数之前字符串的子字符串。

语法

SUBSTRING_INDEX(string, delimiter, number) 

参数

string必填。 指定源字符串。
delimiter必填。 指定要在字符串中搜索的分隔符。
number必填。 指定搜索分隔符的次数。它可以是正数或负数:
  • 如果它是正值,则此函数将返回目标分隔符左侧的所有内容。
  • 如果它是负值,则此函数将返回目标分隔符右侧的所有内容。

返回值

返回分隔符出现次数之前字符串的子字符串。

示例1:

下面的示例显示了 SUBSTRING_INDEX() 函数的用法。

SELECT SUBSTRING_INDEX('www.yxjc123.com', '.', 0);
Result: NULL

SELECT SUBSTRING_INDEX('www.yxjc123.com', '.', 1);
Result: 'www'

SELECT SUBSTRING_INDEX('www.yxjc123.com', '.', 2);
Result: 'www.yxjc123'

SELECT SUBSTRING_INDEX('www.yxjc123.com', '.', 3);
Result: 'www.yxjc123.com'

SELECT SUBSTRING_INDEX('www.yxjc123.com', '.', 4);
Result: 'www.yxjc123.com'

SELECT SUBSTRING_INDEX('www.yxjc123.com', '.', -1);
Result: 'com'

SELECT SUBSTRING_INDEX('www.yxjc123.com', '.', -2);
Result: 'yxjc123.com'

SELECT SUBSTRING_INDEX('www.yxjc123.com', '.', -3);
Result: 'www.yxjc123.com'

SELECT SUBSTRING_INDEX('www.yxjc123.com', '.', -4);
Result: 'www.yxjc123.com' 

示例 2:

考虑一个名为 Orders 的数据库表 包含以下记录:

OrderQuantityPriceIP_Address
1001.5876.240.249.145
1201.61127.255.255.255
1251.78191.70.78.255
501.80223.241.209.223
2001.72129.144.50.56

在下面的查询中,SUBSTRING_INDEX() 函数用于提取 中提到的 IP 地址的网络部分和主机部分IP_Address 列。

MariaDB SUBSTRING_INDEX() 函数
SELECT *, 
SUBSTRING_INDEX(IP_Address, '.', 2) AS Network_Part,
SUBSTRING_INDEX(IP_Address, '.', -2) AS Host_Part
FROM Employee; 

这将产生如下所示的结果:

OrderQuantityPriceIP_AddressNetwork_PartHost_Part
1001.5876.240.249.14576.240249.145
1201.61127.255.255.255127.255255.255
1251.78191.70.78.255191.7078.255
501.80223.241.209.223223.241209.223
2001.72129.144.50.56129.14450.56