0

给定查询的结果,例如

table
-----
fieldSmarty,textBlbs
fieldExcel,textBlah

有没有办法将它们提取成两列?

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

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

4

1 回答 1

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 之后开始,并到字符串的末尾。

于 2013-10-28T00:18:55.140 回答