Altro
Come produrre i risultati delle query MySQL in formato CSV?
C'è un modo semplice per eseguire una query MySQL dalla riga di comando di Linux e produrre i risultati in formato CSV?
Ecco cosa sto facendo ora:
mysql -u uid -ppwd -D dbname << EOQ | sed -e 's/ /,/g' | tee list.csv
select id, concat("\"",name,"\"") as name
from students
EOQ
Diventa un casino quando ci sono molte colonne che hanno bisogno di essere circondate da virgolette, o se ci sono virgolette nei risultati che devono essere evase.
1112
3
Da http://www.tech-recipes.com/rx/1475/save-mysql-query-results-into-a-text-or-csv-file/
Usando questo comando i nomi delle colonne non saranno esportati.
Nota anche che
/var/lib/mysql-files/orders.csv
sarà sul server che sta eseguendo MySQL. L'utente che sta eseguendo il processo MySQL deve avere i permessi per scrivere nella directory scelta, o il comando fallirà.Se vuoi scrivere l'output sulla tua macchina locale da un server remoto (specialmente una macchina ospitata o virtualizzata come Heroku o Amazon RDS), questa soluzione non è adatta.
mysql --batch, -B
Questo ti darà un file separato da tabulazioni. Poiché le virgole (o le stringhe contenenti virgole) non sono sottoposte a escape, non è semplice cambiare il delimitatore in virgola.
In alternativa alla risposta di cui sopra, si può avere una tabella MySQL che utilizza il motore CSV.
Poi avrai un file sul tuo hard disk che sarà sempre in formato CSV che potresti semplicemente copiare senza elaborarlo.