在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