Esportare query mysql in formato csv
Capita a volte di dover esportare i dati di una query in un file csv ( comma separated values) allo scopo di reimportarli in un foglio elettronico (excel e simili).
Vediamo un metodo per farlo.
Supponiamo che dobbiate eseguire una query di questo tipo:
select campo1,campo2,...,campoN from TABELLA1 inner join TABELLA2 on TABELLA1.campoM=TABELLA2.campoR where campo1='value1' and TABELLA2.campo2='value2' order by campo3,campo4,campo5;
E' sufficiente modificare la query aggiungendo la stringa [OPTIONS] nella posizione indicata:
select campo1,campo2,...,campoN [OPTIONS] from TABELLA1 inner join TABELLA2 on TABELLA1.campoM=TABELLA2.campoR where campo1='value1' and TABELLA2.campo2='value2' order by campo3,campo4,campo5;
dove [OPTIONS] ha questa forma:
INTO outfile '[nome_file.csv]' FIELDS TERMINATED BY '[separatore]' ENCLOSED BY ''
Alla stringa [nome_file.csv] va sostituito il percorso assoluto del file che si intende creare, ad esempio:
/home/utente/dump_table.csv
/home/utente/dump_table.csv
Come [separatore] va indicato il separatore di campo scelto.
Fate molta attenzione scegliendo questo campo, in quanto se il separatore scelto è un carattere
Fate molta attenzione scegliendo questo campo, in quanto se il separatore scelto è un carattere
presente nei campi della table ciò scompaginerà completamente il risultato.
Una soluzione applicabile è indicare non un solo carattere ma una stringa di 3 caratteri che presumibilmente non corrisponde a nessun valore dei campi della
select, ad esempio:
###, @@@, #@#, #£@
###, @@@, #@#, #£@
Nel nostro esempio scegliamo la stringa ### e vediamo come appare la nostra query, eseguita dall'utente dumpolo che ha home sotto /home/dumpolo.
Come nome del file csv scegliamo dump_table.csv:
select campo1,campo2,...,campoN INTO outfile '/home/dumpolo/dump_table.csv' FIELDS TERMINATED BY '###' ENCLOSED BY '' from TABELLA1 inner join TABELLA2 on TABELLA1.campoM=TABELLA2.campoR where campo1='value1' and TABELLA2.campo2='value2' order by campo3,campo4,campo5;
Una volta eseguita la query il file dump_table.csv è a nostra disposizione per importarlo sotto Excel o simili.
Ad esempio, se si utilizza Linux, si può aprire con Libre Office Calc: in base al suffisso .csv l'applicazione ci propone direttamente l'opzione Text Import dove tra le Separator Options dobbiamo scegliere Separated by, spuntare l'opzione Other e indicare la stringa del separatore (### nel nostro caso).
A questo punto si apre il foglio di calcolo che possiamo salvare nel formato che più ci aggrada (.ods, .xls, etc.)
Una volta eseguita la query il file dump_table.csv è a nostra disposizione per importarlo sotto Excel o simili.
Ad esempio, se si utilizza Linux, si può aprire con Libre Office Calc: in base al suffisso .csv l'applicazione ci propone direttamente l'opzione Text Import dove tra le Separator Options dobbiamo scegliere Separated by, spuntare l'opzione Other e indicare la stringa del separatore (### nel nostro caso).
A questo punto si apre il foglio di calcolo che possiamo salvare nel formato che più ci aggrada (.ods, .xls, etc.)
0 commenti:
Iscriviti a:
Commenti sul post (Atom)