【发布时间】:2016-05-03 17:45:52
【问题描述】:
我一直在尝试使用可变文件名将 csv 正确导出到我的测试文件夹中——我快要接近了,但我认为在它起作用之前我已经把它归结为一个问题。到目前为止的代码如下:
SET @q1 := CONCAT(
"SELECT *
FROM table
INTO OUTFILE '/SQLOut/test"
, DATE_FORMAT(NOW(),'%Y%m%d')
,".csv'"
, "FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'");
PREPARE s1 FROM @q1;
EXECUTE s1;
DROP PREPARE s1;
如您所见,我必须使用prepared statements 才能使文件名包含今天的日期。这部分有效——但如果我想把它变成一个 csv,我需要在之后包含“字段终止”的东西,我认为这是破坏它的原因。
我相信如果OPTIONALLY ENCLOSED BY '"' 不包含" 后的双引号将关闭我原来的" 在CONCAT( 和'LINES TERMINATED BY '\n'"); 的最后一行之后,这将按预期运行切断,MySQL 变得混乱。
还有其他方法吗?
【问题讨论】:
标签: mysql macos csv into-outfile