如何将mysql查询输出保存为excel或.txt文件?
我有一个MySQL数据库。
如何将MySQL查询的输出保存到MS Excel工作表?
即使它只能将数据存储在.txt
文件中,也没关系。
从保存MySQL查询结果到文本或CSV文件 :
MySQL提供了一个简单的机制来将select语句的结果写入服务器上的文本文件。 使用INTO OUTFILE命名法的扩展选项,可以创build逗号分隔值(CSV),可以将其导入到电子表格应用程序(如OpenOffice或Excel)或任何其他接受CSV格式数据的应用程序中。
给定一个查询如
SELECT order_id,product_name,qty FROM orders
它返回三列数据,结果可以使用查询放在文件/tmo/orders.txt中:
SELECT order_id,product_name,qty FROM orders INTO OUTFILE '/tmp/orders.txt'
这将创build一个制表符分隔的文件,每行在自己的行。 要改变这种行为,可以在查询中添加修饰符:
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正在运行,因为它正在尝试将文件写入目录。
句法
SELECT Your_Column_Name FROM Your_Table_Name INTO OUTFILE 'Filename.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n'
或者你也可以试试这个
您可以尝试从本地客户端执行查询,并将输出redirect到本地文件目标;
Mysql -user -pass -e"select cols from table where cols not null" > /tmp/output
你可以写下面的代码来完成这个任务::
SELECT ... FROM ... WHERE ... INTO OUTFILE 'textfile.csv' FIELDS TERMINATED BY '|'
它将结果导出到CSV,然后将其导出到Excel表单