我有一个列“路径” - 有效路径如下:
"PAGE:StackOverflow:SystemOfReptation:HowTo"
或
"COOKBOOK:Awesome:Cookie"
我需要区分第一部分中的所有名称 所以我有一个像这样的列表:
Sections:
1. PAGE
2. COOKBOOK
我需要区分一个spiecial第一部分的第二部分中的所有名字 喜欢“PAGE”第一部分:
Section of "PAGE"
1 .StackOverflow
我完全不知道我怎么能做到这一点有什么像Mysql中的Regex可以用来做这个吗?
感谢您的帮助
答案 0 :(得分:1)
要获取第一部分的不同列表,可以使用MySQL函数 substring_index
SELECT DISTINCT(SUBSTRING_INDEX(PATH, ':', 1)) SECTIONS
FROM MY_TABLE
这将返回":"背后的所有内容的清晰列表。请注意,如果PATH没有":",它将完全返回。 如果需要,可以添加where子句,例如:
WHERE INSTR(PATH, ":") <> 0
instr()函数将返回第一次出现的位置。
最后,您可以将上述查询用作要在同一个表上连接的子查询,以提取路径的第二级。