mysql从包含换行符的csv加载数据

mysql从包含换行符的csv加载数据,mysql,csv,linefeed,Mysql,Csv,Linefeed,我正在通过这个查询将一些csv数据转储到mysql中 LOAD DATA LOCAL INFILE 'path/LYRIC.csv' INTO TABLE LYRIC CHARACTER SET euckr FIELDS TERMINATED BY '|'; 当我这样做时,我可以从控制台中看到跟踪日志 ... [2017-09-13 11:24:10] ' for column 'SONG_ID' at row 3 [2017-09-13 11:24:10] [01000][1261] Row

我正在通过这个查询将一些csv数据转储到mysql中

LOAD DATA LOCAL INFILE 'path/LYRIC.csv' INTO TABLE LYRIC CHARACTER SET euckr FIELDS TERMINATED BY '|';
当我这样做时,我可以从控制台中看到跟踪日志

...
[2017-09-13 11:24:10] ' for column 'SONG_ID' at row 3
[2017-09-13 11:24:10] [01000][1261] Row 3 doesn't contain data for all columns
[2017-09-13 11:24:10] [01000][1261] Row 3 doesn't contain data for all columns
...
我认为csv获得了一些作为列数据的换行符,因此它中断了所有解析过程

csv中的单个记录看起来像

000001|2014-11-17 18:10:00|2014-11-17 18:10:00|If I were your September     
I''d whisper a sunset to fly through    
And if I were your September    


|0|dba|asass|2014-11-17 18:10:00||||2014-11-17 18:10:00
所以
LOAD DATA
将第1行作为记录,然后尝试第2行,依此类推,即使这是一个数据

我怎样才能修好它?我应该向客户端请求不同类型的文件吗


顺便说一句,我对csv的工作很陌生。

csv中的多行字段应该用双引号括起来,如下所示:

000001|2014-11-17 18:10:00|2014-11-17 18:10:00|"If I were your September     
I''d whisper a sunset to fly through    
And if I were your September    


"|0|dba|asass|2014-11-17 18:10:00||||2014-11-17 18:10:00
该字段中的任何双引号都应该用另一个双引号转义


当然,解析器必须支持(也可能被指示使用)多行字段。

谢谢。知道了。但是,如果文本中包含双引号,会发生什么情况?有必要替换为
\“
”?是的,需要使用另一个双引号
”“
或linux样式的
\”
来转义。可能取决于解析器支持什么。