如何将MySQL查询的输出保存到MS Excel表?
即使只能将数据存储在.txt
文件中,也没关系。
答案 0 :(得分:162)
来自Save MySQL query results into a text or CSV file:
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'
在这个例子中,每个字段都用双引号括起来 字段将以逗号分隔,每行将在a上输出 由换行符分隔的新行(\ 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
答案 1 :(得分:6)
您可以编写以下代码来完成此任务:
SELECT ... FROM ... WHERE ...
INTO OUTFILE 'textfile.csv'
FIELDS TERMINATED BY '|'
将结果导出为CSV,然后将其导出到Excel工作表。