2013-01-11 35 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 
相關問題