我有这样的文字字符串:
“澳大利亚/悉尼/ 2738日/何塞和卡林”
我需要将其拆分为多个列。但这是棘手的部分。字符串也可能看起来像
“英国/曼彻斯特/中心/第627天/卢卡斯和妮可”。
我认为所有字符串都有一个模板:
“%/%/ D%/%和%”
我需要将每个“%”移动到另一个字段/列。
“UK”,“Manchester / Center”,“Day 627”,“Lucas”,“Nicole”
inb4:使用mysql 5.5 谢谢! NIK。
答案 0 :(得分:0)
MySQL没有针对字符串的拆分功能,但是here您可以看到用于定义的用户定义函数。
例如:
select SPLIT_STR(SPLIT_STR(ColumnA, "/D",1), "/", 1),
CONCAT(SPLIT_STR(SPLIT_STR(ColumnA, "/D",1), "/", 2),'/',
SPLIT_STR(SPLIT_STR(ColumnA, "/D",1), "/", 3)),
CONCAT('D',SPLIT_STR(SPLIT_STR(ColumnA, "/D",2), "/", 1)),
SPLIT_STR(SPLIT_STR(ColumnA, "/D",2), "/", 2)
from table1
OUTPUT(SQL fiddle):
Australia Sydney/ Day 2738 Jose and Carlin
UK Manchester/Centre Day 627 Lucas and Nicole
答案 1 :(得分:0)
不确定,如果MySQL原生可以做到这一点。但是你可以添加一个用户定义的函数来执行它,如果你有由/分隔的固定数量的字段,则更容易。如果你想要它的动态解决方案,那就很难了,甚至在你的脚本语言中也要小心,而不是查询。
如果它有帮助,只需要一点方向:http://blog.fedecarg.com/2009/02/22/mysql-split-string-function/