MySQL字符串拆分

时间:2010-07-02 20:29:42

标签: sql mysql string

我将一个csv文件上传到MySQL数据库但由于某种原因,来自两列的数据被粘合到一个。

e.g。数据0880174V,D应该分为两个不同的列。

有没有办法(通过sql)我可以从这个列拆分数据(即0880174V和D)并更新表,而不必删除记录并重新上传?我有一百万条记录。

== CURRENT

Column A       Column B
0880174V,D     

==预期

Column A       Column B
0880174V        D   

3 个答案:

答案 0 :(得分:6)

UPDATE my_table
SET ColumnB = SUBSTRING(ColumnA, INSTR(ColumnA, ',') + 1),
    ColumnA = SUBSTRING(ColumnA, 1, INSTR(ColumnA, ',') - 1)

先做一个SELECT TOP让你放心。

答案 1 :(得分:1)

您必须指定字段终结符

load data local infile 'file.csv' into myTable
fields terminated by ','
enclosed by '"'
lines terminated by '\n'
(col1,col2)

编辑:nvm

答案 2 :(得分:1)

更简单的解决方案是使用SUBSTRING_INDEX而不是使用INSTR的SUBSTRING

更新my_table
SET ColumnB = SUBSTRING_INDEX(ColumnA,',',1),
    ColumnA = SUBSTRING_INDEX(ColumnA,',', - 1)