【问题标题】:Loading a CSV file with inconsistent spaces after commas加载逗号后空格不一致的 CSV 文件
【发布时间】:2012-12-26 03:31:13
【问题描述】:
我想使用LOAD DATA INFILE 命令加载 CSV 文件,但逗号后面的空格不一致,即逗号后面有空格,而逗号后面没有。
我尝试使用FIELDS TERMINATED BY "," 指令,但结果表中的某些字段包含前导空格;如果输入是
abc,def, ghi, klm
然后在加载后我的表有
column1 = 'abc'
column2 = 'def'
column3 = ' ghi'
column4 = ' klm'
请注意,第 3 列和第 4 列包含前导空格。
我希望我的列不包含前导空格。我该怎么做?
【问题讨论】:
标签:
mysql
sql
database
csv
【解决方案1】:
这行得通吗?
LOAD DATA INFILE 'file.csv'
INTO TABLE t1 (column1, @col2, @col3, @col4)
SET
column2 = TRIM(@col2),
column3 = TRIM(@col3),
column4 = TRIM(@col4)
【解决方案2】:
您可以使用简短的sed 替换模式来做到这一点:
sed -i 's/, /,/g' file.csv
之后,file.csv(其内容为“abc,def, ghi, klm”)包含:
abc,def,ghi,klm