如何使用加载数据infie从某些字段包含“”的cvs导入数据

时间:2016-11-04 16:08:47

标签: sql

我有一些列想要插入一个现有的表,有些列的内容如下“how,using,list,file”,每列用“,”分隔,所以如何使用load data infile导入它们?

1 个答案:

答案 0 :(得分:0)

你没有指出你正在使用哪个数据库,所以我会回答你的mysql问题。 请参阅this

  

如果此类文件中的行由回车符/换行符对终止,则此处显示的语句说明了用于加载文件的字段和行处理选项:

     

LOAD DATA INFILE 'data.txt' INTO TABLE tbl_name FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES;

在页面的下方:

  

字段值中ENCLOSED BY字符的出现通过在其前面加上ESCAPED BY字符进行转义。另请注意,如果指定一个空的ESCAPED BY值,则可能会无意中生成LOAD DATA INFILE无法正确读取的输出。例如,如果转义字符为空,则刚刚显示的前面的输出将显示如下。注意第四行中的第二个字段在引号后面包含一个逗号,它(错误地)似乎终止该字段:

     

1,"a string",100.20 2,"a string containing a , comma",102.20 3,"a string containing a " quote",102.20 4,"a string containing a ", quote and comma",102.20

因此,如果您在列中未转义""这些数据无法在一般情况下导入,您将使用正确的ENCLOSED BY字符导出数据,或者将文件预处理为首先逃离"

如果您的列中只有,,那么很容易,您必须使用ENCLOSED BYTERMINATED BY