Supprimer « \ N » s lorsque vous faites SELECT INTO OUTFILE
-
08-10-2019 - |
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.
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