在MariaDB中选择某个字符之前或之后的所有内容

发布于

在 MariaDB 中,您可以使用该函数返回字符串中某个字符(或多个字符)之前或之后的所有内容。SUBSTRING_INDEX()

此函数接受三个参数;字符串、分隔符以及用于确定要返回的子字符串的该分隔符的出现次数。

例子

我们可以在以下示例中看到该函数的工作原理。

选择之前的所有内容

要选择某个字符之前的所有内容,请将第三个参数设为正值:

SELECT SUBSTRING_INDEX('Red,Green,Blue', ',', 2);

输出:

Red,Green

在此示例中,我们选择第二个逗号之前的所有内容。这是通过使用逗号 () 作为分隔符和计数来完成的。,``2

我在那个例子中使用了逗号,但它可以是任何字符或字符串:

SELECT SUBSTRING_INDEX('Red or Green or Blue', ' or ', 2);

输出:

Red or Green

选择之后的所有内容

使用负值选择特定字符后的所有内容:

SELECT SUBSTRING_INDEX('Red,Green,Blue', ',', -2);

输出:

Green,Blue

请注意,负值表示它将从右侧计数,然后选择分隔符右侧的子字符串。

找不到分隔符时

如果在字符串中找不到分隔符,则完整返回字符串。

例:

SELECT SUBSTRING_INDEX('Red,Green,Blue', '-', 1);

输出:

Red,Green,Blue

在这个示例中,将完整返回整个字符串,因为我们使用连字符 () 作为分隔符,但字符串中没有连字符。-

如果字符串_确实_包含分隔符,我们会得到相同的结果,但我们超过了字符串中的分隔符数量。count

例:

SELECT SUBSTRING_INDEX('Red,Green,Blue', ',', 10);

输出:

Red,Green,Blue

区分大小写

该函数对分隔符执行区分大小写的搜索。也就是说,分隔符需要是正确的大小写才能匹配。SUBSTRING_INDEX()

不正确的大小写

下面是大小写不匹配的示例:

SELECT SUBSTRING_INDEX('Red and green and blue', 'AND', 2);

输出:

Red and green and blue

我们得到完整的字符串。

正确的大小写

现在这是相同的示例,但大小写匹配:

SELECT SUBSTRING_INDEX('Red and green and blue', 'and', 2);

输出:

Red and green