我有一个时间表数据库表,里面有一些常见的字段.
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 ....
但是
当我try 查看输出文件的源代码时,文件中仍然存在换行符,因此Excel的CSV导入会中断Excel向导创建的所有高级宏和透视表.
有没有关于最佳行动方案的 idea ?