【问题标题】: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
      

      【讨论】:

        猜你喜欢
        • 2019-02-14
        • 2011-09-08
        • 2016-08-23
        • 1970-01-01
        • 2016-05-24
        • 1970-01-01
        • 2015-10-22
        • 2022-10-16
        • 1970-01-01
        相关资源
        最近更新 更多