我不得不在MySQL表中的每一个出现的模式,如“:“和“”,将一列拆分成多行。以下是列数据的外观:
Column_1
page1:message1,page2:message2,page3:message3,page4:message4
我想显示这样的数据:-
Column_2 Column_1
page1 message1
page2 message2
page3 message3
page4 message4
我已经尝试寻找REGEXP_REPLACE()和SUBSTRING_INDEX()MySQL函数,但无法形成一个查询来实现这一点。
谁来帮帮忙。
2条答案
按热度按时间bvjveswy1#
如果您的MySQL版本不支持windows函数,您可以创建一个数字表(使用您的字符串的最大长度),如下所示:
然后遵循两个步骤的过程。
首先,用逗号分隔字符串:
你会得到这样一个结果:
其次,使用
:
划分行,如下所示:最终结果:
https://dbfiddle.uk/acWncQ8y
5lhxktic2#
您可以使用cte为每次出现的带有索引的行获取一行
这将为您提供如下结果
这样,您现在就可以获取以分隔的部分的第n个示例,并将该部分拆分为两列
然后你会得到