Exportar os resultados de uma pesquisa Mysql para o excel?

a minha exigência é armazenar todos os resultados da consulta

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

para um ficheiro Excel.

Author: mleko, 2012-04-24

5 answers

A maneira típica de conseguir isso é exportar para CSV e depois carregar o CSV para o Excel.
Pode usar qualquer ferramenta da linha de comandos MySQL para o fazer, incluindo a cláusula INTO OUTFILE na sua declaração SELECT:
SELECT ... FROM ... WHERE ... 
INTO OUTFILE 'file.csv'
FIELDS TERMINATED BY ','

Ver esta ligação para Opções Detalhadas.

Em alternativa, poderá usar o mysqldump para guardar o 'dump' num formato de valores separado, usando a opção --tab, veja esta ligação.

mysqldump -u<user> -p<password> -h<host> --where=jtaskResult=2429 --tab=<file.csv> <database> TaskResult
 76
Author: Roland Bouman, 2017-01-11 16:13:06

Um bom exemplo pode ser quando for necessário escrevê-lo após o fim da sua consulta, se tiver ligações ou se estiver perto:

 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');
 6
Author: danielad, 2013-07-24 07:59:59

Utilize a pesquisa abaixo:

 SELECT * FROM document INTO OUTFILE 'c:/order-1.csv' FIELDS TERMINATED BY ','  
 ENCLOSED BY '"' LINES TERMINATED BY '\n';
 5
Author: Aditya Dwivedi, 2016-03-21 11:18:24
No meu caso, preciso de descarregar o resultado sql num ficheiro do lado do cliente. Esta é a situação mais típica. Você não tem acesso ao servidor ou não quer escrever seu resultado no servidor. O problema é que você tem uma consulta complicada que dura para várias linhas; você não pode usar a linha de comando para enviar o resultado para um arquivo facilmente.
mysql -h hostname -d databasename -u username -ppwd -e "mysql simple sql statement that last for less than a line" > outputfile_on_the.client

Pode colocar a sua consulta complicada num ficheiro: longquery_ file.banco o comando Executar

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

Isto funcionou comigo. A única dificuldade comigo é o carácter de tabulação que às vezes uso para o group_cancat (separador foo 0x09) será escrito como '\t ' no ficheiro de saída. O carácter 0x09 é a página ASCII. Mas este problema não é particular para a forma como nós descarregamos os resultados sql para o arquivo. Pode estar relacionado com o meu pager. Avisa-me quando encontrares uma resposta para este problema. Vou actualizar este post.

 1
Author: Kemin Zhou, 2017-08-25 01:39:02
Esta é uma pergunta antiga, mas ainda é um dos primeiros resultados no Google. A maneira mais rápida de fazer isso é ligar o MySQL diretamente ao Excel usando consultas ODBC ou MySQL para o Excel. Este último foi mencionado num comentário ao PO, mas achei que merecia realmente a sua própria resposta, porque a exportação para a CSV não é a forma mais eficiente de o conseguir.

ODBC Queries - isto é um pouco mais complicado de configurar, mas é muito mais flexível. Por exemplo, o MySQL para O Excel add-in não lhe permite usar as cláusulas WHERE nas expressões da consulta. A flexibilidade deste método também permite que você use os dados de formas mais complexas.

MySQL For Excel - Use este add-in se você não precisa fazer nada complexo com a consulta ou se você precisa obter algo realizado de forma rápida e fácil. Você pode fazer visualizações em seu banco de dados para contornar algumas das limitações da consulta.

 0
Author: Anthony, 2018-02-25 18:43:28