具体拆分记录(字符串)分为几个字段

时间:2013-11-22 22:13:59

标签: mysql sql string split

我有这样的文字字符串:

  

“澳大利亚/悉尼/ 2738日/何塞和卡林”

我需要将其拆分为多个列。但这是棘手的部分。字符串也可能看起来像

  

“英国/曼彻斯特/中心/第627天/卢卡斯和妮可”。

我认为所有字符串都有一个模板:

  

“%/%/ D%/%和%”

我需要将每个“%”移动到另一个字段/列。

  

“UK”,“Manchester / Center”,“Day 627”,“Lucas”,“Nicole”

inb4:使用mysql 5.5 谢谢! NIK。

2 个答案:

答案 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/