Mysql中2个字符之间的不同路径

时间:2018-03-02 13:33:50

标签: mysql

我有一个列“路径” - 有效路径如下:
"PAGE:StackOverflow:SystemOfReptation:HowTo"

"COOKBOOK:Awesome:Cookie"

我需要区分第一部分中的所有名称 所以我有一个像这样的列表:

Sections:  
1. PAGE  
2. COOKBOOK 

我需要区分一个spiecial第一部分的第二部分中的所有名字 喜欢“PAGE”第一部分:

Section of "PAGE"

1 .StackOverflow

我完全不知道我怎么能做到这一点有什么像Mysql中的Regex可以用来做这个吗?

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

要获取第一部分的不同列表,可以使用MySQL函数 substring_index

SELECT DISTINCT(SUBSTRING_INDEX(PATH, ':', 1)) SECTIONS
FROM MY_TABLE

这将返回":"背后的所有内容的清晰列表。请注意,如果PATH没有":",它将完全返回。 如果需要,可以添加where子句,例如:

WHERE INSTR(PATH, ":") <> 0

instr()函数将返回第一次出现的位置。

最后,您可以将上述查询用作要在同一个表上连接的子查询,以提取路径的第二级。