我想从命令行查询的输出中获取无标题的CSV数据。我在与MySQL服务器不同的计算机上运行此查询,因此所有带有“INTO OUTFILE”的Google回答都不好。

所以我运行mysql -e "select people, places from things"。输出的内容看起来像这样:

+--------+-------------+
| people | places      |
+--------+-------------+
|   Bill | Raleigh, NC |
+--------+-------------+

好吧,那不好。但是,嘿,看!如果我仅将其通过管道传递到任何内容,它将变成一个制表符分隔的列表:
people  places
Bill    Raleigh, NC

那样更好-至少可以通过程序分析。但是我不想要TSV,我想要CSV,并且我不需要那个标题。我可以使用mysql <stuff> | tail -n +2摆脱标题,但是如果MySQL仅带有标记可以忽略它,那是我要避免的麻烦。而且我不能只用逗号替换所有选项卡,因为这不能处理带有逗号的内容。

那么,如何才能使MySQL省略 header 并以CSV格式提供数据?

最佳答案

作为部分答案:mysql -N -B -e "select people, places from things"-N告诉它不打印列标题。 -B是“批处理模式”,并使用制表符分隔字段。

如果制表符分隔的值不够用,请参阅this Stackoverflow Q&A

09-10 02:28
查看更多