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

MySQL导出到输出文件:CSV转义字符

薄欣怿
2023-03-14
问题内容

我有时间表的数据库表,其中包含一些常见的字段。

id, client_id, project_id, task_id, description, time, date

还有更多,但这就是要点。

我已经在该表上导出了一个导出到CSV文件的导出文件,以向用户提供其数据的备份。它也用作带有某些自定义报告的宏Excel文件的数据导入。

这一切都与我合作,通过php遍历时间表并将行打印到文件中。

问题在于大型数据库可能需要花费数小时才能运行,这是无法接受的。所以我用MySQL INTO OUTFILE命令重写了它,并将它减少到几秒钟即可运行,这很棒。

现在的问题是,我似乎无法在描述字段中转义所有换行符等。实际上,用户可以在此处键入字符的任何组合,包括回车符/换行符。

这是我拥有的MySQL代码的片段:

SELECT id, 
       client,
       project,
       task,
       REPLACE(REPLACE(ifnull(ts.description,''),'\n',' '),'\r',' ') AS description, 
       time,
       date  
      INTO OUTFILE '/path/to/file.csv'
      FIELDS ESCAPED BY '""'
      TERMINATED BY ',' ENCLOSED BY '"'
      LINES TERMINATED BY '\n'
      FROM ....

但…

当我尝试查看输出文件的源时,文件中仍然存在换行符,因此Excel的CSV导入会破坏Excel向导创建的所有奇特宏和数据透视表。

对最佳行动有何想法?


问题答案:

我认为您的声明应如下所示:

SELECT id, 
   client,
   project,
   task,
   description, 
   time,
   date  
  INTO OUTFILE '/path/to/file.csv'
  FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
  LINES TERMINATED BY '\n'
  FROM ts

主要没有FIELDS ESCAPED BY '""'选项,OPTIONALLY ENCLOSED BY '"'将在描述字段等方面发挥作用,并且您的数字将在Excel中视为数字(而不是由数字组成的字符串)

还可以尝试致电:

SET NAMES utf8;

在选择外档之前,这可能有助于内联字符编码(所有UTF8)

让我们知道您的身体情况如何。



 类似资料:
  • 导出文件csv、文件excel时,无法正确显示日文字符。这是我的代码: } 这是我的控制器 @PostMapping(value=“/exportCsv”,products=“application/octet stream”)公共响应标题searchStudentExportCsv(@Valid@RequestBody SearchStudentReq req){返回studentService

  • 问题内容: 我试图将使用以下查询找到的结果导出到我的桌面上的CSV中。 这是我第一次使用Elasticsearch和cURL,因此我对如何执行此操作感到困惑。 现在,当我运行此查询时,它将返回戴夫的姓名,姓氏,地址和性别,并且我想在运行查询时将结果放入桌面上的csv中。 我一直在阅读有关如何执行此链接的操作,但是我不确定如何使我的查询执行此操作-(https://docs.python.org/3

  • 我正在使用xslt转换xml文档。我需要使用输出转义来获得我的结果,因为我使用的工作服务器只会输出

  • 我在几个小时的研究后发布了这个(几次...)。我还找不到任何答案。 我的目标是使用PHP编写一个CSV文件。这个文件必须有中文ANSI编码(我想简体中文是GB2312,在记事本中我只看到ANSI编码)。必须导入到另一个工具。 【重要提示】 我们目前正在转换一个带有记事本的文件和一台默认语言为中文的PC。这个过程是: 从web-app获取UTF8 CSV 保存为CSV与Excel 2003在中国PC

  • 问题内容: 我有一个在Amazon RDS中运行的mysql数据库,我想知道如何将整个表导出为csv格式。我目前在Windows上使用mysql服务器查询Amazon数据库,但是当我尝试运行导出时,我得到一个错误,可能是因为没有用于Amazon RDS的专用文件服务器。有什么解决办法吗? 问题答案: 大概您正在尝试通过查询从Amazon RDS数据库导出,这会引起这个确实常见的问题,请参阅例如将数

  • EDIT:Java部分在响应的outputstream中写入 编辑2:由于某些限制,我无法在服务器端创建文件