2

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

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

abc,def, ghi, klm

然后在加载我的桌子后

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

请注意,第 3 列和第 4 列包含前导空格。

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

4

2 回答 2

4

这行得通吗?

LOAD DATA INFILE 'file.csv'
INTO TABLE t1 (column1, @col2, @col3, @col4)
SET
  column2 = TRIM(@col2),
  column3 = TRIM(@col3),
  column4 = TRIM(@col4)
于 2013-01-11T14:30:16.520 回答
1

您可以使用简短的sed替换模式来执行此操作:

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

之后,file.csv(其内容为“abc,def, ghi, klm”)包含:

abc,def,ghi,klm
于 2013-01-11T14:32:43.737 回答