2013-01-11 36 views
2

我想使用LOAD DATA INFILE命令加载CSV文件,但逗号后面的空格不一致,即逗号后面跟着空格和逗号。使用逗号后加载空格不一致的CSV文件

我尝试使用FIELDS TERMINATED BY ","指令,但结果表中的一些字段包含前导空格;如果输入的是

abc,def, ghi, klm 

然后加载后,我的表有

column1 = 'abc' 
column2 = 'def' 
column3 = ' ghi' 
column4 = ' klm' 

注意第3,4列包含一个前导空格。

我想我的列不包含前导空格。我应该怎么做?

回答

4

这项工作?

LOAD DATA INFILE 'file.csv' 
INTO TABLE t1 (column1, @col2, @col3, @col4) 
SET 
    column2 = TRIM(@col2), 
    column3 = TRIM(@col3), 
    column4 = TRIM(@col4) 
1

你可以用很短的sed替代模式做到这一点:

sed -i 's/, /,/g' file.csv 

之后,FILE.CSV(其内容是 “ABC,DEF,GHI,荷航”)载:

abc,def,ghi,klm 
相关问题