是否将Mysql查询结果导出到Excel?

j2qf4p5b  于 2022-10-31  发布在  Mysql
关注(0)|答案(8)|浏览(176)

我的要求是存储查询的整个结果

SELECT * FROM document 
WHERE documentid IN (SELECT * FROM TaskResult WHERE taskResult = 2429)

到Excel文件。

omvjsjqw

omvjsjqw1#

一个很好的例子是,如果您有连接或where close,则在查询结束后编写它:

select 'idPago','fecha','lead','idAlumno','idTipoPago','idGpo'
 union all
(select id_control_pagos, fecha, lead, id_alumno, id_concepto_pago, id_Gpo,id_Taller,
id_docente, Pagoimporte, NoFactura, FacturaImporte, Mensualidad_No, FormaPago,
Observaciones from control_pagos
into outfile 'c:\\data.csv' 
FIELDS TERMINATED BY ',' 
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n');
nfeuvbwi

nfeuvbwi2#

使用以下查询:

SELECT * FROM document INTO OUTFILE 'c:/order-1.csv' FIELDS TERMINATED BY ','  
 ENCLOSED BY '"' LINES TERMINATED BY '\n';
yruzcnhs

yruzcnhs3#

在我的例子中,我需要将sql结果转储到客户端的一个文件中。这是从数据库中卸载数据的最典型的用例。在许多情况下,您没有访问服务器的权限,或者不想将结果写入服务器。

mysql -h hostname -u username -ppwd -e "mysql simple sql statement that last for less than a line" DATABASE_NAME > outputfile_on_the.client

当您有一个持续几行的复杂查询时,问题就出现了;您无法使用命令行轻松地将结果转储到文件中。在这种情况下,您可以将复杂的查询放入一个文件(如longquery_file. sql)中,然后执行命令。

mysql -h hn -u un -ppwd < longquery_file.sql DBNAME > output.txt

这对我很有效,唯一的困难是制表符;有时我使用的group_cancat(foo SEPARATOR 0x 09)在输出文件中会被写为'\t'。0x 09字符是ASCII TAB。但是这个问题并不是我们将sql结果转储到文件的方式所特有的。它可能与我的寻呼机有关。当你找到这个问题的答案时,请告诉我。我会更新这个帖子。

h79rfbju

h79rfbju4#

我用来将mysql输出导出到文件的快捷方式是
$ mysql<database_name>--三通管接头=<file_path>
然后在任何需要的地方使用导出的输出(可以在<file_path>中找到)。
请注意,这是避免使用secure-file-priv选项运行数据库的唯一方法,该选项会阻止使用前面的答案中建议的INTO OUTFILE

ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
q5lcpyga

q5lcpyga5#

对于SHOW DATABASESSHOW TABLES

**INTO OUTFILE**不适用于 * SHOW TABLES * 和 * SHOW DATABASES * 查询。
在这种情况下,您可以:

1.SHOW DATABASES

mysql -u <user> -p <password> -e 'SHOW DATABASES' > <path_to_file>

1.一个月六个月一次

mysql -u <user> -p <password> -e 'SHOW TABLES FROM <db_name>' > <path_to_file>

提示:-e标志代表execute

xcitsw88

xcitsw886#

在我的例子中,INTO OUTFILE不起作用,因为MySQL用户与登录用户不同。而且,我不能使用内联变量,因为我的查询相当大。
我最终使用了这个,它是如此容易。这可能不支持CSV或任何输出,但如果你需要输出,因为它是,这将工作。

mysql> tee /tmp/my.out;

来源:https://alvinalexander.com/mysql/how-save-output-mysql-query-file/

h6my8fg2

h6my8fg27#

这是一个老问题,但它仍然是Google上的第一个结果。最快的方法是使用ODBC查询或MySQL For Excel将MySQL直接链接到Excel。后一种方法在OP的评论中提到,但我觉得它确实值得自己的答案,因为导出到CSV不是实现这一点的最有效方法。
ODBC Queries-这是一个有点复杂的设置,但它是非常灵活的。例如,MySQL的Excel插件不允许您使用WHERE子句在查询表达式。这种方法的灵活性还允许您使用更复杂的方式使用数据。
MySQL For Excel-如果不需要对查询执行任何复杂的操作,或者需要快速轻松地完成某些操作,请使用此加载项。您可以在数据库中创建视图,以解决某些查询限制。

相关问题