gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 23:10:17 31 4
gpt4 key购买 nike

我正在使用此查询将一些 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

并且该字段内的任何双引号都应使用另一个双引号进行转义。

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

关于mysql从包含换行符的csv加载数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46187997/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com