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.

War es hilfreich?

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top