Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como lidar com valores NULL em uma instrução mysql SELECT ... OUTFILE em conjunto com FIELDS ESCAPED BY? Os valores NULL estão sendo truncados no momento


Consegui salvar com sucesso os resultados da consulta MySQL como CSV e importá-los para o Excel da seguinte maneira:

  1. Utilize o formulário...
    IFNULL(ColumnA, "" ) AS "Column A",
    

...para cada coluna ou expressão em sua instrução SELECT que pode retornar um NULL (\N). Isso garantirá que os valores NULL em seu arquivo CSV apareçam como strings vazias corretamente citadas em vez de \N's citados incorretamente. Em vez de uma string vazia, você poderia especificar um valor para representar um NULL, por exemplo...
    IFNULL(ColumnA, "~NULL~" ) AS "Column A",
  1. Use as seguintes opções de OUTFILE:


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

Observe que ESCAPED BY especifica uma aspa dupla, assim como ENCLOSED BY. Eu não testei se OPTIONALLY ENCLOSED BY será bem-sucedido, então deixo OPTIONALLY de fora.

O uso de aspas duplas para escapar de outras aspas duplas em um valor de campo entre aspas é obrigatório de acordo com a especificação CSV - RFC 4180, seção 2.7.