将mysql查询结果转换为CSV(带复制/粘贴)

Gat*_*ter 15 mysql csv numbers export

我经常在命令行mysql上工作.常见的需求是获取查询结果并将其导入Numbers文档(类似于Excel文档).

这样做的最快方法是什么?

方法1:选择输出文件

您可以直接从MySQL中选择一个outfile,但这需要几个步骤.

  1. 使用所有必要的参数导出您的查询,使其成为CSV格式,如FIELDS OPTIONALY ENCLOSED BYDELIMITED BY.
  2. sftp进入服务器并获取文件
  3. 从服务器删除该文件

方法2:复制/粘贴

我倾向于采用这种方法.对我来说似乎有点快,但这主要是因为我不记得如何SELECT INTO OUTFILE从上面构建查询并且必须查找它.

  1. 复制/粘贴到本地文本文件
  2. 在文本编辑器中打开并替换| 用,
  3. 保存为CSV并在Numbers中打开.

Ste*_*ere 10

这个怎么样?:

mysql -B -e"$ MY_QUERY"> my_data.csv

输出格式实际上是以制表符分隔的,而不是以逗号分隔,但至少Excel和OpenOffice Calc会自动适应这种情况.

顺便说一句,为方便起见并启用mysql命令的非交互式执行,我强烈建议设置一个安全的〜/ .my.cnf文件
(只有您可读),条目如下:

[client]
user=YOUR_MYSQL_USER_NAME
password=YOUR_MYSQL_PASSWORD
host=YOUR_MYSQL_SERVER
port=YOUR_MYSQL_SERVER_PORT
WHATEVER_OTHER_OPTIONS_YOU_LIKE
Run Code Online (Sandbox Code Playgroud)

参考文献:

http://dev.mysql.com/doc/refman/5.1/en/mysql-command-options.html

--batch,-B

使用制表符作为列分隔符打印结果,每行都在新行上.使用此选项,mysql不使用历史记录文件.

批处理模式导致非常规输出格式和特殊字符的转义.可以使用原始模式禁用转义; 请参阅--raw选项的说明.


Luc*_*man 7

您还可以将mysql命令行实用程序与-e选项一起使用,并将输出通过管道传输到文件.这将以制表符分隔的格式输出数据.