Rimuovere “\ n” s quando si fa SELECT INTO OUTFILE
-
08-10-2019 - |
Domanda
sto facendo un SELECT INTO OUTFILE
e sta mostrando un "\ n" per ogni valore NULL
. C'è un modo per me per farlo basta essere vuota invece?
Sono su MySQL.
Soluzione
È possibile utilizzare la funzione COALESCE
qualcosa di simile:
COALESCE(yourfield, '')
Altri suggerimenti
Buona domanda, e rilevante oggi come lo era nel 2011. Io uso una stored procedure per questo, Wich prende il nome di una tabella come argomento. Successivamente, converte tutti i valori nulli di svuotare stringhe ( ''), utilizzando un'istruzione prepaired e non cursori, per i cursori sono così non SQL. Ho provato con una tabella con circa 200 colonne e una dichiarazione prepaired risultante così a lungo di circa 15.000 caratteri:
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;
In SQL-file principale, v'è una dichiarazione
SET @@group_concat_max_len = 60000;
che potrebbe essere cruciale.
Maggiori informazioni (in olandese): http://wiki.devliegendebrigade.nl/SELECT_INTO_OUTFILE_%28MySQL % 29
Saluti, Jeroen Strompf