如何将MySQL查询输出保存到Excel或.txt文件?[副本]

r3i60tvu  于 2023-05-05  发布在  Mysql
关注(0)|答案(2)|浏览(159)

此问题已在此处有答案

Exporting results of a Mysql query to excel?(9个回答)
8年前关闭。
如何将MySQL查询的输出保存到MS Excel工作表?
即使只能将数据存储在.txt文件中,也没有问题。

vsaztqbk

vsaztqbk1#

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'

在本例中,每个字段将用双引号括起来,字段之间用逗号分隔,每行将在新行上输出,并用换行符(\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';指定的目录中。

mccptt67

mccptt672#

您可以编写以下代码来完成此任务:

SELECT ... FROM ... WHERE ... 
INTO OUTFILE 'textfile.csv'
FIELDS TERMINATED BY '|'

它将结果导出到CSV,然后将其导出到Excel工作表。

相关问题