2015-10-04 56 views
0

现在我的CSV是这种形式:如何使用字符串中的引号将数据从CSV导入到MySQL中?

的pubId,PUBKEY,标题,年份

csv

我使用这个查询加载到MySQL:

SET NAMES utf8; 
LOAD DATA INFILE 'C:/Users/AllanPC/Desktop/csv/Publication.csv' 
INTO TABLE publication 
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 
LINES TERMINATED BY '\r\n' 

现在的问题是并非所有的csv数据都被加载到mysql中。

1096, journals/acta/LescanneP12,"Backward" coninduction~ Nash equilibrium and the rationality of escation., 2012

其中引号“的处理”中的负载产生一些问题:

这方面的问题通过CSV条目,如引起的?我该如何解决这个问题?

+1

为什么不用双引号测试自己来回答问题呢?取出您认为会导致问题的CSV文件的一行,并将其另存为quotes.csv。然后尝试加载CSV文件。对于测试2,删除双引号并将其保存为withoutquotes.csv并尝试加载它。为了解决这个问题,你需要在可以处理大文件的文本编辑器中调出CSV文件(确保你备份了原文)。然后,用单引号替换所有双引号,或用双斜线(\“)引导双引号(\”) –

+0

另外,甚至可以尝试复制双引号(即“”“”),用它来寻找解决方案。 –

回答

0

您定义

ENCLOSED BY '"' 

查询里面,但你没有封闭CSV内的字符串。你将不得不逃离你的“在你的文件中,并把你的字符串改正”。

我觉得你行应类似于

1096, "journals/acta/LescanneP12","\"Backward\" coninduction~ Nash equilibrium and the rationality of escation.", 2012 

末。另外,您可以尝试将ENCLOSED BY重置为更合适的值,例如空白。

相关问题