给出像
这样的查询的结果table
-----
fieldSmarty,textBlbs
fieldExcel,textBlah
有没有办法将它们分成两列?
table | field | text
-------------------------------------
fieldSmarty,textBlbs | Smarty | Blbs
fieldExcel,textBlah | Excel | Blah
如果它变得更容易,字符串总是以字段和文本开头。 表头名称不太相关 - 拆分它们只是一个很好的开始。
答案 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之后开始,并转到字符串的末尾。