如何从SQL中将字符串提取到列中

时间:2013-10-28 00:04:59

标签: mysql

给出像

这样的查询的结果
table
-----
fieldSmarty,textBlbs
fieldExcel,textBlah

有没有办法将它们分成两列?

table                | field  | text 
-------------------------------------
fieldSmarty,textBlbs | Smarty | Blbs
fieldExcel,textBlah  | Excel  | Blah

如果它变得更容易,字符串总是以字段和文本开头。 表头名称不太相关 - 拆分它们只是一个很好的开始。

1 个答案:

答案 0 :(得分:2)

修改:调整为包含Daniel P的调整

逗号总是会在那里吗?您可以执行以下操作:

select foo, SUBSTR(foo, 6, INSTR(foo, ',')-6) AS field, 
       SUBSTR(foo, instr(foo, ',')+5) as text 
from table;

语法可能稍微关闭(暂时没有要测试的mysql框)。 “field”列的子字符串从6开始删除单词“field”。 Instring获取字符串开头的位置(因此,在“smarty Blbs”示例中,它将返回12)。所以,如果我们想省略逗号,我们减去一个停在第11个位置。 然后,“text”列的子字符串在逗号和单词text之后开始,并转到字符串的末尾。