2012-04-24 14 views
38

Moje wymogiem jest przechowywanie całych wyniki kwerendyEksportowanie wyników zapytania Mysql do programu Excel?

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

do pliku Excel.

+1

Hum ... to trochę mgliste! Jakieś techno, język programowania, ograniczenia, uprzejmość, "styl kodu"? – sp00m

+1

Możesz użyć [Toad for MySQL (Freeware)] (http://www.quest.com/toad-for-mysql), aby to osiągnąć. – DocJones

+1

@Priya, w zależności od przypadku użycia zobacz także oficjalny [MySQL for Excel] (https://www.mysql.com/why-mysql/windows/excel/). – Pacerier

Odpowiedz

68

Typowym sposobem na to jest eksport do pliku CSV, a następnie załadowanie pliku CSV do programu Excel.
Można za pomocą dowolnego narzędzia wiersza poleceń MySQL to zrobić poprzez włączenie klauzuli INTO OUTFILE na wyciągu SELECT:

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

Zobacz this link dla szczegółowych opcji.

Alternatywnie, można użyć mysqldump przechowywać zrzutu w formacie wartości oddzielonych za pomocą opcji --tab patrz this link.

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

moje kolumny są odrzucane, o co chodzi, proszę? – danielad

+0

Nie rozumiem pytania. "odwołany"? –

+1

Nie widzę nazw kolumn na cvs zaimportowanych – danielad

6

Dobrym przykładem może być, kiedy okrywać pisania po zakończeniu tego zapytania, jeżeli masz dołącza lub gdy w pobliżu:

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 dotyczył plików Excel, a nie CSV. – Vizkrig

+0

To jest prawdopodobnie to, czego szukał graham.reeds. – MattBianco

5

Użyj poniższego zapytania:

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

W moim przypadku, muszę zrzucić wynik sql do pliku po stronie klienta. Jest to najbardziej typowa sytuacja. Nie masz dostępu do serwera lub nie chcesz zapisywać wyników na serwerze. Problem polega na tym, że masz skomplikowane zapytanie, które trwa przez kilka linii; nie można użyć wiersza poleceń do łatwego zrzutu wyniku do pliku.

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

można umieścić swoją skomplikowaną zapytanie do pliku: longquery_file.sql execute polecenia

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

Ten pracował dla mnie. Jedyną trudnością jest dla mnie znak tabulacji, którego czasami używam dla group_cancat (foo SEPARATOR 0x09) w pliku wyjściowym będzie zapisany jako '\ t'. Znak 0x09 to ASCII TAB. Ale ten problem nie dotyczy sposobu, w jaki zrzucamy wyniki sql do pliku. Może to być związane z moim pagerem. Daj mi znać, gdy znajdziesz odpowiedź na ten problem. Zaktualizuję ten post.

0

To stare pytanie, ale nadal jest to jeden z pierwszych wyników Google. Najszybszym sposobem na to jest połączenie MySQL bezpośrednio do Excela przy użyciu zapytań ODBC lub MySQL for Excel. Ten ostatni został wymieniony w komentarzu do PO, ale czułem, że naprawdę zasługuje na własną odpowiedź, ponieważ eksportowanie do CSV nie jest najskuteczniejszym sposobem osiągnięcia tego.

ODBC Queries - Jest to nieco bardziej skomplikowane w konfiguracji, ale jest o wiele bardziej elastyczne. Na przykład dodatek MySQL For Excel nie pozwala na stosowanie klauzul WHERE w wyrażeniach zapytań. Elastyczność tej metody pozwala również na wykorzystanie danych w bardziej złożony sposób.

MySQL For Excel - Użyj tego dodatku, jeśli nie potrzebujesz nic skomplikowanego w zapytaniu lub potrzebujesz szybko i łatwo wykonać coś. Możesz tworzyć widoki w bazie danych, aby obejść niektóre z ograniczeń dotyczących zapytań.

Powiązane problemy