2012-04-24 10 views
38

Mi requisito es para almacenar la totalidad de los resultados de la consultaExportación de resultados de una consulta Mysql para sobresalir?

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

a un archivo de Excel.

+1

Hum ... ¡es un poco vago! Cualquier techno, lenguaje de programación, restricciones, cortesía, 'código-estilo'? – sp00m

+1

Puede usar [Toad for MySQL (Freeware)] (http://www.quest.com/toad-for-mysql) para lograr esto. – DocJones

+1

@Priya, Dependiendo de su caso de uso, también vea el [MySQL for Excel] oficial (https://www.mysql.com/why-mysql/windows/excel/). – Pacerier

Respuesta

68

La forma típica de lograr esto es exportar a CSV y luego cargar el archivo CSV en Excel.
Se puede utilizar cualquier herramienta de línea de comandos de MySQL para hacer esto mediante la inclusión de la cláusula INTO OUTFILE en su estado de SELECT:

SELECT ... FROM ... WHERE ... 
INTO OUTFILE 'file.csv' 
FIELDS TERMINATED BY ',' 

Ver this link para las opciones detalladas.

Como alternativa, puede usar mysqldump para volcar almacenar en un formato de valores separados utilizando la opción --tab, ver this link.

mysqldump -u<user> -p<password> -h<host> --where=jtaskResult=2429 --tab=<file.csv> <database> TaskResult 
+0

mis columnas se descartan ¿cuál es el problema, por favor? – danielad

+0

No entiendo la pregunta. "despedido"? –

+1

no puedo ver los nombres de columna en cvs importados – danielad

6

buen ejemplo puede ser cuando en caso de escribirlo después del final de la consulta, si usted tiene une o cerca de donde:

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'); 
+0

El OP se refería a los archivos de Excel no a CSV. – Vizkrig

+0

Esto es probablemente lo que buscaba graham.reeds. – MattBianco

5

utilizar la consulta a continuación:

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

En mi caso, necesito volcar el resultado de sql en un archivo en el lado del cliente. Esta es la situación más típica. No tiene acceso al servidor o no desea escribir su resultado en el servidor. El problema es que tienes una consulta complicada que dura varias líneas; no puede usar la línea de comando para volcar el resultado a un archivo fácilmente.

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

puede poner su consulta complicada en un archivo: longquery_file.sql al ejecutar el comando

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

Esto funcionó para mí. La única dificultad conmigo es que el carácter de tabulación que a veces uso para group_cancat (foo SEPARATOR 0x09) se escribirá como '\ t' en el archivo de salida. El carácter 0x09 es ASCII TAB. Pero este problema no es particular de la forma en que volcamos los resultados de sql al archivo. Puede estar relacionado con mi buscapersonas. Avísame cuando encuentres una respuesta a este problema. Actualizaré esta publicación.

0

Esta es una vieja pregunta, pero sigue siendo uno de los primeros resultados en Google. La forma más rápida de hacerlo es vincular MySQL directamente a Excel utilizando consultas ODBC o MySQL para Excel. Este último fue mencionado en un comentario al OP, pero sentí que realmente merecía su propia respuesta porque exportar a CSV no es la forma más eficiente de lograr esto.

ODBC Queries - Esto es un poco más complicado de configurar, pero es mucho más flexible. Por ejemplo, el complemento MySQL For Excel no le permite usar las cláusulas WHERE en las expresiones de consulta. La flexibilidad de este método también le permite utilizar los datos de formas más complejas.

MySQL For Excel - Utilice este complemento si no necesita hacer nada complejo con la consulta o si necesita hacer algo de manera rápida y fácil. Puede hacer vistas en su base de datos para solucionar algunas de las limitaciones de la consulta.

Cuestiones relacionadas