Esportare i risultati di una query Mysql in formato CSV

Posted on Apr 15, 2021

Qualche tempo fa ho avuto la necessità di esportare da Mysql dei dati in formato CSV. I dati da esportare erano ottenuti a partire da una query SQL con varie join e trasformazioni.

Vincoli:

  • non potevo creare il file sul server Mysql, quindi non ho potuto usare INTO OUTFILE direttamente nella query di produzione dei dati,
  • dovevo utilizzare il client mysql da riga di comando, quindi ad esempio niente Mysql Workbench.

Cercando in rete ho trovato su Stack Overflow una buona soluzione. L’idea era eseguire la query attraverso il client mysql e andare a trasformare l’output del comando in formato CSV utilizzando il comando sed.

L’idea si √® rivelata una buona base di partenza, durante l’utilizzo ho migliorato la trasformazione dell’output risolvendo vari problemi che ho incontrato nel mio scenario.

Ho pubblicato un gist dello script migliorato.