一尘不染

如何将MySQL查询输出保存到excel或.txt文件?

mysql

如何将MySQL查询的输出保存到MS Excel工作表?

即使只能将数据存储在.txt文件中,也可以。


阅读 417

收藏
2020-05-17

共1个答案

一尘不染

将MySQL查询结果保存到文本或CSV文件中

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
2020-05-17