我正在运行以下查询,但没有收到我想要的结果
SELECT * FROM `test`.`sales_flat_order_grid`
WHERE `created_at` BETWEEN DATE_SUB(CURDATE(), INTERVAL 14 DAY)
AND CURDATE()
INTO OUTFILE '/tmp/sales.csv'
FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY 'n';
此查询在一个excel行中显示结果,但不包含MySQL表头。有关如何修复此查询的任何想法?
由于
答案 0 :(得分:1)
你真的在这里问了两个问题。
1)为什么导出的数据全部为1行。
答案:
{1}}
中缺少\
所以它应该是
LINES TERMINATED BY 'n';
2)如何在第1行中获取列标题。
<强>答案:强>
按照Set Sail Media的建议手动构建它,
或
2.1)尝试将查询管道传送到命令行客户端,如下所示=&gt; https://stackoverflow.com/a/263000/325521
或
2.2)使用这里描述的这个小脚本=&gt; https://stackoverflow.com/a/9976449/325521
答案 1 :(得分:1)
首先,你需要以'\n'
(EOL字符)而不是n
(字母N)终止。
其次,没有MySQL魔术将列名作为第一行包含,这是手动的,你需要构建它。请参阅这个问题的第二个答案,这可能会简化你的事情:Include headers when using SELECT INTO OUTFILE?