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

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

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

в файл Excel.

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

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

Подробнее см. Эту ссылку .

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

 mysqldump -u -p -h --where=jtaskResult=2429 --tab=  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 TAB. Но эта проблема не связана с тем, как мы сбрасываем результаты sql в файл. Это может быть связано с моим пейджером. Дайте мне знать, когда вы найдете ответ на эту проблему. Я обновлю этот пост.

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

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

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

Давайте будем гением компьютера.