当前位置: 首页 > 面试题库 >

将MySQL数据导出到CSV文件时,如何保留换行符?

龙俊英
2023-03-14
问题内容

我需要将一些数据从mysql导出到csv文件。但是其中一列有换行符,我需要将数据导出到保存换行符的csv文件中。

目前,我正在使用以下sql查询:

select username, description from users into outfile '/tmp/test.csv' FIELDS ESCAPED BY '"' TERMINATED BY ','  OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n';

但是该sql查询不会将换行符保存在csv文件中。我不是MySQL的专家,如果有人可以帮助我,我将不胜感激


问题答案:

您似乎正在遇到以下错误:https :
//bugs.mysql.com/bug.php?id=40320自2008年以来就报告了该错误。我刚刚进行了测试,发现它仍然是MySQL
8.0.3中的错误。

我可以通过以下方式解决该错误:

SELECT username, REPLACE(description, '\n', '\\n') FROM users
INTO OUTFILE '/tmp/test.csv' FIELDS ESCAPED BY '"' TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n';

该文件将使用文字\n文本(即两个字符)导出。因此,在加载数据时,必须撤消替换:

LOAD DATA INFILE '/tmp/test.csv' INTO TABLE users 
FIELDS ESCAPED BY '"' TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' 
SET description = REPLACE(description, '\\n', '\n');

当然,这不是很优雅,但这是一种解决方法。

另一种选择是编写一个应用程序来执行导出和导入,并避免使用SELECT...INTO OUTFILELOAD DATA INFILE



 类似资料:
  • 如何将CSV文件导入MySQL表?我想把第一行数据用作列名。 我读到如何将CSV文件导入MySQL表?,但是唯一的答案是使用GUI而不是shell?

  • 我在网上读到,您可以使用几种不同的方法将数据帧的内容保存到数据湖中的CSV文件中。我的dataframe很好,但我似乎不能将它保存到CSV文件中。我很乐意把这个CSV放在湖里,或者放在我的桌面上。任何一个都没问题。 尝试1: 尝试2: 两种选择对我都不起作用。对于这两种情况,我将得到一条错误消息,内容为

  • 问题内容: 我想通过php将MYSQL数据导出到Excel / CSV。这样我以后可以使用我的数据库,或者有人可以使用和理解它。 问题答案: 我想这就是你要找的 您可以通过检查以下地址来创建自己的文件:http : //www.programmingfacts.com/export-mysql-data-into- excelcsv-via-php/ 我不能在这里添加工作代码,这是错误的= / 但

  • 问题内容: 我有以下结构的csv文件: 使用以下MySQL函数如何导入MySQL表的第一和第三列: 我为我的英语道歉! 提前致谢 ! 问题答案: 您可以指定列,并将不需要的列标记为“ @dummy”。 替换,并且只要你喜欢。要设置不在数据文件中的其他列,您可以这样做: 作为进一步的参考,我建议您看一下MySQL参考。

  • 这段代码导出sql数据到csv文件,数据是出来了,显示在网页上,不保存成csv文件,请教一下什么原因?

  • 问题内容: 我正在尝试重组在Excel文件中组织降水数据的方式。为此,我编写了以下代码: 这段代码运行良好,通过Jupyter,我可以看到结果是不错的 但是,尝试将此数据帧保存到csv文件时遇到问题。 结果文件包含垂直索引列,看来我无法调用特定的单元格。 (希望有人可以帮助我解决这个问题)非常感谢! 问题答案: 全部在文档中。 您有兴趣跳过索引列,因此: 如果您还想跳过标题,请添加: 我不知道您的