Экспорт результатов запроса Mysql в excel?

мое требование-сохранить все результаты запроса

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

в файл Excel.

5 ответов


типичный способ достичь этого-экспортировать в CSV, а затем загрузить CSV в Excel.
Вы можете использовать любой инструмент командной строки MySQL для этого, включив INTO OUTFILE пункт на SELECT о себе:

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

посмотреть этой ссылке подробные варианты.

кроме того, вы можете использовать mysqldump для хранения дампа в разделенном формате значений с помощью опции -- tab, см. этой ссылке.

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

хорошим примером может быть, когда вы пишете его после окончания запроса, если у вас есть соединения или где закрыть:

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

используйте следующий запрос:

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

в моем случае, мне нужно сбросить результат SQL в файл на стороне клиента. Это наиболее типичная ситуация. У вас нет доступа к серверу или вы не хотите писать свой результат на сервер. Проблема в том, что у вас есть сложный запрос, который длится несколько строк; вы не можете использовать командную строку, чтобы легко сбросить результат в файл.

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

вы можете поместить свой сложный запрос в файл: longquery_file.язык SQL на выполнение команда

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

это работает для меня. Единственная трудность со мной-символ вкладки, который я иногда использую для group_cancat(Foo SEPARATOR 0x09), будет записан как '\t ' в выходном файле. Символ 0x09-это вкладка ASCII. Но эта проблема не связана с тем, как мы сбрасываем результаты sql в файл. Это может быть связано с моим пейджером. Дайте мне знать, когда найдете ответ на эту проблему. Я обновлю этот пост.


Это старый вопрос, но это все еще один из первых результатов в Google. Самый быстрый способ сделать это-связать MySQL непосредственно с Excel с помощью запросов ODBC или MySQL для Excel. Последний был упомянут в комментарии к OP, но я чувствовал, что он действительно заслуживает собственного ответа, потому что экспорт в CSV-не самый эффективный способ достичь этого.

запросы ODBC - это немного сложнее в настройке,но это намного более гибкий. Например, Надстройка MySQL для Excel не позволяет использовать WHERE предложения в выражениях запроса. Гибкость этого метода также позволяет использовать данные более сложными способами.

MySQL Для Excel - используйте эту надстройку, если вам не нужно делать ничего сложного с запросом или если вам нужно что-то сделать быстро и легко. Можно создать представления в базе данных, чтобы обойти некоторые ограничения запросов.