如何在mySQL中将值拆分为多个列

时间:2016-03-31 09:15:56

标签: mysql sql

如何编写SQL查询以执行以下功能。我有一个带有下划线"_"的列值。我想通过下划线"_"拆分这些值,以创建两个名为pID,nID的新列,并保持原始ID列不变。

  Input example          Output example
   ID       |          |  pID | nID    |
1234_591856 |  ==>     | 1234 | 591856 |
12547_15795 |          | 12547| 15795  |
12_185666   |          | 12   | 18566  |

3 个答案:

答案 0 :(得分:2)

您可以通过以下查询 -

SELECT 
SUBSTRING_INDEX(mycol,'_',1), 
SUBSTRING_INDEX(mycol,'_',-1) 
FROM mytable;

答案 1 :(得分:1)

select id, 
       substr(id, 1, instr(id, '_') - 1) as pId, 
       substr(id, instr(id, '_') + 1, length(id)) as nId
from your_table

SQLFiddle demo

答案 2 :(得分:1)

如果要向表中添加两个新列,可以使用ALTER TABLE:

$scope.getDate = function(timestamp) {
    var date = new Date(timestamp*1000);
    return date;
};

然后您可以更新新创建的列的值:

alter table mytable
add column pid varchar(100),
add column nid varchar(100);