2012-04-24 6 views
38

Мое требование хранить целые результаты запросаЭкспорт результатов запроса Mysql для Excel?

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

в файл Excel.

+1

Хм ... это немного расплывчато! Любой техно, язык программирования, ограничения, вежливость, «стиль кода»? – sp00m

+1

Для достижения этой цели вы можете использовать [Toad for MySQL (Freeware)] (http://www.quest.com/toad-for-mysql). – DocJones

+1

@Priya, в зависимости от вашего варианта использования, также см. Официальный [MySQL for Excel] (https://www.mysql.com/why-mysql/windows/excel/). – Pacerier

ответ

68

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

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

См this link подробные варианты.

В качестве альтернативы, вы можете использовать туздЫшпр для хранения дампа в формате значений, разделенных с помощью --tab параметра см this link.

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

мои колонки отклоняются в чем проблема, пожалуйста? – danielad

+0

Я не понимаю вопроса. «Уволен»? –

+1

Я не могу видеть имена столбцов на cvs импортированных – danielad

6

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

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

OP ссылался на файлы Excel, а не на CSV. – Vizkrig

+0

Возможно, это то, что искали graham.reeds. – MattBianco

5

ниже используется запрос:

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

В моем случае мне нужно отправить 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 в файл. Это может быть связано с моим пейджером. Дайте мне знать, когда вы найдете ответ на эту проблему. Я обновлю этот пост.

0

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

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

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

Смежные вопросы