如何将MySQL查询输出保存为Excel或.txt文件?
如何将MySQL查询输出保存为Excel或.txt文件?
这个问题在这里已经有了答案:
如何将一个MySQL查询的输出保存到MS Excel表格中呢?
即使只能将数据保存为.txt
文件也可以。
admin 更改状态以发布 2023年5月22日
MySQL提供了一种简单机制,将select语句的结果写入服务器上的文本文件中。使用INTO OUTFILE命名法的扩展选项,可以创建逗号分隔值(CSV),可以导入电子表格应用程序,例如OpenOffice或Excel或任何接受CSV格式数据的应用程序。
给定如下的查询:
SELECT order_id,product_name,qty FROM orders
它返回三列数据,可以使用以下查询将结果放入/tmp/orders.txt文件中:
SELECT order_id,product_name,qty FROM orders INTO OUTFILE '/tmp/orders.txt'
这将创建一个以制表符分隔的文件,每行单独一行。要更改此行为,可以向查询添加修饰符:
SELECT order_id,product_name,qty FROM orders INTO OUTFILE '/tmp/orders.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n'
在此示例中,每个字段将用双引号括起来,字段用逗号分隔,每行用换行符(\n)隔开。该命令的示例输出如下所示:
"1","Tech-Recipes sock puppet","14.95" "2","Tech-Recipes chef's hat","18.95"
请记住,输出文件不能已经存在,并且MySQL正在运行的用户需要对MySQL尝试将文件写入的目录具有写权限。
语法
SELECT Your_Column_Name FROM Your_Table_Name INTO OUTFILE 'Filename.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n'
或者您可以尝试通过客户端获取输出:
您可以尝试使用本地客户端执行查询,并将输出重定向到本地文件目标:
mysql -user -pass -e "select cols from table where cols not null" > /tmp/output
提示:如果您没有指定绝对路径,而是使用像INTO OUTFILE 'output.csv'
或INTO OUTFILE './output.csv'
这样的内容,它将把输出文件存储到由show variables like 'datadir';
指定的目录中。