Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment gérer les valeurs NULL dans une instruction mysql SELECT ... OUTFILE en conjonction avec FIELDS ESCAPED BY? Les valeurs NULL sont actuellement tronquées

J'ai pu enregistrer avec succès les résultats de la requête MySQL au format CSV et les importer dans Excel comme suit :

  1. Utilisez le formulaire...

    IFNULL(ColumnA, "" ) AS "Column A",
    

... pour chaque colonne ou expression de votre instruction SELECT qui peut éventuellement renvoyer un NULL (\N). Cela garantira que les valeurs NULL dans votre fichier CSV apparaissent comme des chaînes vides correctement citées plutôt que comme des \N incorrectement cités. Au lieu d'une chaîne vide, vous pouvez éventuellement spécifier une valeur pour représenter un NULL, par exemple...

    IFNULL(ColumnA, "~NULL~" ) AS "Column A",
  1. Utilisez les options OUTFILE suivantes :

FIELDS TERMINATED BY ','
ENCLOSED BY '"'
ESCAPED BY '"'
LINES TERMINATED BY '\r\n'

Notez que ESCAPED BY spécifie un guillemet double, tout comme ENCLOSED BY. Je n'ai pas testé si OPTIONALLY ENCLOSED BY réussira, donc je laisse simplement OPTIONALLY de côté.

L'utilisation d'un guillemet double pour échapper un autre guillemet double dans une valeur de champ entre guillemets est requise par la spécification CSV - RFC 4180, section 2.7.