Question

Je fais un SELECT INTO OUTFILE et il est montrant un « \ N » pour chaque valeur de NULL. Est-il possible pour moi de faire ce soit juste vide au lieu?

Je suis sur MySQL.

Était-ce utile?

La solution

Vous pouvez utiliser la fonction COALESCE quelque chose comme ceci:

COALESCE(yourfield, '')

Autres conseils

Bonne question, et comme aujourd'hui qu'elle l'était en 2011. J'utilise une procédure stockée pour cela, Wich prend le nom d'une table comme argument. , Il convertit ensuite toutes les nuls valeurs de chaînes vides ( « »), en utilisant une instruction prepaired et aucun curseur, pour les curseurs sont si non-SQL. Je l'ai testé avec une table avec 200 colonnes et une déclaration prepaired résultante qui est à peu près 15 000 caractères:

CREATE DEFINER=`root`@`localhost` PROCEDURE `ExportFixNull`(
   in tblname tinytext)
BEGIN

set @string=concat(
    "Update ",@tblname," set ",
    (
        select group_concat(column_name,"=ifnull(",column_name,",'')")
        from information_schema.columns 
        where table_name=@tblname
    )
    ,";"
 );

prepare s1 from @string;
execute s1;
drop prepare s1;

Dans le principal fichier SQL, il y a une instruction

SET @@group_concat_max_len = 60000;

qui pourrait être crucial.

Plus de détails (en néerlandais): http://wiki.devliegendebrigade.nl/SELECT_INTO_OUTFILE_%28MySQL 29%

Cordialement, Jeroen Strompf

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top