更改列中的文本

时间:2017-03-10 19:52:01

标签: mysql rename

我有mysql表 项目 并且有一列叫做 项目位置 值就像这种格式 数数数

'1-22-5',
'6-19-44',

等等.. 我怎么能让mysql将每个数字分成新列 就像我需要将item_location爆炸为三列 item_location

item_location,item_area,item_row
1,22,5
6,19,44

{{1}}

并为所有记录执行此操作.. 谢谢

2 个答案:

答案 0 :(得分:0)

假设您的列名为my_col。您可以使用一些substring_index来拆分列

  select 
        SUBSTRING_INDEX(my_col, '-',1) as item_location
        , SUBSTRING_INDEX(SUBSTRING_INDEX(my_col, '-',2), '-' -1) as item_area
        , SUBSTRING_INDEX(my_col, '-',-1) as item_row
  from  my_table 

答案 1 :(得分:0)

您可以通过以下方式拆分列数据来插入新表:

INSERT INTO TABLE (item_location,item_area,item_row)
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('your_column', '-', 1), '-', -1),
       SUBSTRING_INDEX(SUBSTRING_INDEX('your_column', '-', 2), '-', -1),
       SUBSTRING_INDEX(SUBSTRING_INDEX('your_column', '-', 3), '-', -1) 
FROM single_column_table