Site icon BLD Web Agency

Comment récupérer le résultat d’une requête MySQL en CSV

Dans ce rapide article, nous allons voir comment exécuter une requête MySQL en envoyant le résultat de cette dernière dans un fichier CSV au format adéquat.

Les fichiers CSV

Les fichiers CSV sont des fichiers texte qui permettent de manipuler des données en colonnes, comme peut le faire un fichier de tableur type Excel. C’est souvent le format de choix quand on souhaite exporter ou importer des données dans un logiciel, et c’est également souvent un casse-tête. Ces fichiers sont par exemple utilisé pour l’import de produits en masse dans WooCommerce. Pour vous faire une idée de ce type de fichier, vous pouvez utiliser ce générateur de données de tests.

Comment convertir l’output d’une requête MySQL en CSV

Admettons que vous devez jouer une lourde requête SQL pour exporter les commandes de votre site eCommerce :

select if(light_reg=1,'light',if(e_commerce=1,'ecommerce','std')) as type,b.Invoice_number,b.NFW_order_id,a.Nome,a.Apelido,a.Data,a.Telef,a.Email,Pay_auth,Pay_confirm
from encomendas_adesioni a
left join import_invoices b on(a.codigo=b.Temporary_code)
where date_format(Data,'%Y-%m-%d')>='2022-05-01'

Si cette requête est exécutée tel quel, le retour sera affiché sous le format MySQL classique. Afin de pouvoir traiter et analyser les données, il est possible de renvoyer ce résultat au format CSV en y ajoutant quelques lignes :

select if(light_reg=1,'light',if(e_commerce=1,'ecommerce','std')) as type,b.Invoice_number,b.NFW_order_id,a.Nome,a.Apelido,a.Data,a.Telef,a.Email,Pay_auth,Pay_confirm
from encomendas_adesioni a
left join import_invoices b on(a.codigo=b.Temporary_code)
where date_format(Data,'%Y-%m-%d')>='2022-05-01'
INTO OUTFILE '/tmp/orders.csv'
FIELDS TERMINATED BY ';'
ENCLOSED BY '"'
LINES TERMINATED BY '\n';

Voici les lignes à ajouter pour obtenir ce résultat :

INTO OUTFILE '/tmp/orders.csv'
FIELDS TERMINATED BY ';'
ENCLOSED BY '"'
LINES TERMINATED BY '\n';

Grâce à cette requête, nous allons pouvoir envoyer l’output de notre requête dans le fichier /tmp/orders.csv. Ce fichier CSV sera de la forme suivante :

Si cet article vous a été utile, n’hésitez pas à consulter nos autres articles tagués Tutoriels.

Quitter la version mobile