【发布时间】:2010-11-10 07:08:19
【问题描述】:
我有一个包含一些常见字段的时间表数据库表。
id, client_id, project_id, task_id, description, time, date
还有更多,但这就是它的要点。
我在一夜之间在该表上运行导出到 CSV 文件,以便为用户提供其数据的备份。它还用作带有一些自定义报告的宏 Excel 文件的数据导入。
这一切都适用于我使用 php 循环浏览时间表并将行打印到文件中。
问题在于大型数据库可能需要数小时才能运行,这是不可接受的。所以我用 MySQL INTO OUTFILE 命令重写了它,它将运行时间缩短到几秒钟,这很棒。
现在的问题是我似乎无法转义描述字段中的所有换行符等。实际上,用户可以在此处输入任何字符组合,包括回车/换行。
这是我拥有的 MySQL 代码的 sn-p:
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 向导创建的所有花哨的宏和数据透视表。
关于最佳行动方案的任何想法?
【问题讨论】:
标签: mysql sql excel into-outfile