MySQL导出到CSV全部在一行&没有标题

时间:2014-01-27 22:10:18

标签: mysql sql csv export-to-csv

我正在运行以下查询,但没有收到我想要的结果

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表头。有关如何修复此查询的任何想法?

由于

2 个答案:

答案 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?