使用LOAD DATA INFILE引用问题导入CSV

我试图得到这个CSV文件,我从Excel导出加载到我的数据库,我似乎无法得到格式正确无论我尝试。

这里是SQL:

LOAD DATA INFILE 'path/file.csv' INTO TABLE tbl_name FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' (column1, column2, column3); 

这工作正常,但当一行(第3列)的结尾在报价结束时,我遇到了麻烦。 例如:

实际值: These are "quotes"

CSV中的值: "These are ""quotes"""

会发生什么情况是,我将在数据库中获得额外的报价,并且还会额外添加一行,直到CSV中出现另一个报价为止。 任何想法如何解决这个问题?

嗯。 我试图重复这个问题,但不能。 我的数据与您的数据有什么不同? 你能提供样本数据来复制吗? 以下是我所做的:

 > cat /tmp/data.csv "aaaa","bbb ""ccc"" ddd",xxx xxx,yyy,"zzz ""ooo""" foo,bar,baz mysql> CREATE TABLE t2 (a varchar(20), b varchar(20), c varchar(20)); Query OK, 0 rows affected (0.01 sec) mysql> LOAD DATA INFILE '/tmp/data.csv' INTO TABLE t2 FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' (a, b, c); Query OK, 3 rows affected (0.00 sec) Records: 3 Deleted: 0 Skipped: 0 Warnings: 0 mysql> select * from t2; +------+---------------+-----------+ | a | b | c | +------+---------------+-----------+ | aaaa | bbb "ccc" ddd | xxx | | xxx | yyy | zzz "ooo" | | foo | bar | baz | +------+---------------+-----------+ 3 rows in set (0.00 sec) 

看起来没问题(?)

另请注意,如果您正在使用Windows平台,则可能需要使用
LINES TERMINATED BY '\r\n'