Remove „\ N“ s, wenn SELECT INTO OUTFILE tun
-
08-10-2019 - |
Frage
Ich mache einen SELECT INTO OUTFILE
und es ist ein „\ N“ für jeden NULL
Wert zeigt. Gibt es eine Möglichkeit für mich einfach zu machen leer statt?
Ich bin auf MySQL.
Lösung
Sie können die COALESCE
Funktion so etwas wie folgt verwenden:
COALESCE(yourfield, '')
Andere Tipps
Gute Frage, und heute so aktuell wie es im Jahr 2011 war ich eine gespeicherte Prozedur für diesen, Weicht den Namen einer Tabelle als Argument verwendet. Anschließend wandelt sie alle null-Werte Strings zu leeren ( ‚‘), eine prepaired Anweisung und keine Cursor verwenden, für Cursor so Nicht-SQL sind. Ich habe mit einigen 200 Spalten mit einem Tisch getestet und eine daraus resultierenden prepaired Aussage, dass die etwa 15.000 Zeichen lang:
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 der Haupt-SQL-Datei gibt es eine Anweisung
SET @@group_concat_max_len = 60000;
das könnte entscheidend sein.
Weitere Details (auf Niederländisch): http://wiki.devliegendebrigade.nl/SELECT_INTO_OUTFILE_%28MySQL 29%
Viele Grüße, Jeroen Strompf