带有双引号的MySQL加载数据infile字段的错误

时间:2014-05-06 14:11:58

标签: mysql mysql-loadfile

我有.csv这样的文件数据:

"UPRR 38 PAN AM "M"","1"

我使用下面的命令将数据加载到表中,该命令有两列(ab)。

LOAD DATA LOCAL INFILE 'E:\monthly_data.csv'
INTO TABLE test_data_table
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n';

但是当我选择表格时,它会给出意想不到的结果,如下所示。

a包含:

UPRR 38 PAN AM "M","1

...而b是NULL

由于

2 个答案:

答案 0 :(得分:2)

您可以在文件中替换“双引号双引号”的所有实例

A.打开文件并找到替换它们 或B.制作一个脚本来打开文件并替换弄乱它的额外引用

答案 1 :(得分:1)

你有这个:

ENCLOSED BY '"'

因此"不再是常规字符。它是一个具有特殊含义的特殊字符:它突出显示列值的开始和结束。如果您要键入 not 的行为",则需要将其转义。 RFC 4180 - Common Format and MIME Type for Comma-Separated Values (CSV) Files文档解释了如何执行此操作:

  

如果使用双引号括起字段,则使用双引号          出现在一个字段内必须通过前面的方式进行转义          另一个双引号

a;b
"UPRR 38 PAN AM ""M""";1

正如他们所说,垃圾进入,垃​​圾出来; - )