gpt4 book ai didi

MySQL 导出到输出文件 : CSV escaping chars

转载 作者:行者123 更新时间:2023-11-29 22:38:21 26 4
gpt4 key购买 nike

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

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

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

我连夜将该表导出到 CSV 文件,以便为用户提供数据备份。它还可用作带有一些自定义报告的宏 Excel 文件的数据导入。

这一切都适合我使用 php 循环遍历时间表并将行打印到文件中。

问题在于大型数据库可能需要数小时才能运行,这是 Not Acceptable 。因此,我使用 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)

让我们知道您的进展如何。

关于MySQL 导出到输出文件 : CSV escaping chars,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29464366/

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