Mysql
 sql >> Database >  >> RDS >> Mysql

Come gestisco i valori NULL in un'istruzione mysql SELECT ... OUTFILE insieme a FIELDS ESCAPED BY? I valori NULL vengono attualmente troncati

Sono stato in grado di salvare con successo i risultati delle query MySQL come CSV e importarli in Excel come segue:

  1. Usa il modulo...

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

...per ogni colonna o espressione nella tua istruzione SELECT che può eventualmente restituire un NULL (\N). Ciò garantirà che i valori NULL nel tuo file CSV appaiano come stringhe vuote citate correttamente anziché come \N citate in modo errato. Invece di una stringa vuota, potresti eventualmente specificare un valore per rappresentare un NULL, ad esempio...

    IFNULL(ColumnA, "~NULL~" ) AS "Column A",
  1. Utilizza le seguenti opzioni OUTFILE:

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

Si noti che ESCAPED BY specifica una virgoletta doppia, così come ENCLOSED BY. Non ho verificato se OPTIONALLY ENCLOSED BY avrà esito positivo, quindi lascio OPZIONALMENTE fuori.

L'utilizzo di una doppia virgoletta per evitare un'altra doppia virgoletta all'interno di un valore di campo tra virgolette è richiesto per la specifica CSV - RFC 4180, sezione 2.7.