【问题标题】:MySQL: Importing csv into table with quotation marksMySQL:将csv导入带引号的表中
【发布时间】:2019-06-13 03:02:32
【问题描述】:

我有一个 csv,其中每一行都以引号开头,也以引号结尾。将csv加载到表格时如何忽略行首和行尾的引号?

LOAD DATA LOCAL INFILE '/path/data.csv' 
INTO TABLE test1 
FIELDS TERMINATED BY ';' 
LINES TERMINATED BY '\"\n'
IGNORE 1 ROWS;

我试过了

OPTIONALLY ENCLOSED BY '"'

但这指的是每个特定的字段,而不是整行。

【问题讨论】:

标签: mysql sql csv sql-insert load-data-infile


【解决方案1】:

正如Shadow 和Barmar 所说,答案在于the documentation

如果所有输入行都有一个您想忽略的公共前缀,您可以使用 LINES STARTING BY 'prefix_string' 跳过前缀及其之前的任何内容。如果一行不包含前缀,则跳过整行。 [...] FIELDS TERMINATED BY、LINES STARTING BY 和 LINES TERMINATED BY 值可以超过一个字符。

因此,使用:

LOAD DATA LOCAL INFILE '/path/data.csv' 
INTO TABLE test1 
    FIELDS TERMINATED BY ';' 
    LINES STARTING BY '"'
    LINES TERMINATED BY '"\n'
    IGNORE 1 ROWS;

【讨论】:

    猜你喜欢
    • 2016-05-16
    • 2010-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多