根据REGEX将mysql列值拆分为2列

时间:2014-07-20 22:49:16

标签: php mysql sql regex

我有一张看起来像这样的表

ID   | VALue   |
1    | Cap 120 |
1    | Sack 100 |
3    | etc.. 100 |

我需要将此列中的数字移动到它自己的单个列中,因此对于上面的例子,它就像

ID   | VALue    |  number |
1    | Cap  | 120     |
1    | Sack | 100     |
3    | etc..| 50      |

可以用mysql吗?或者我必须做一个PHP解决方案来修复我的表?

提前致谢

2 个答案:

答案 0 :(得分:2)

如果始终只有1个空格并且它在值和数字之间,那么您可以使用下面的查询。

SELECT 
SUBSTRING_INDEX(value,' ',1) as value
SUBSTRING_INDEX(value,' ',-1) as number
FROM myTable

答案 1 :(得分:2)

这将处理多个空格,例如“Cap Dap”(不会将其切换为“Cap”)

select 
substring_index(value,' ',length(value) - length(replace(value, ' ', ''))) as value, 
substring_index(value,' ', -1) as num from tbl;

示例,行包含多个空格: http://sqlfiddle.com/#!2/9dc2f/5/0