2011-01-07 9 views

Antwort

5

Sie die COALESCE Funktion so etwas wie diese verwenden:

COALESCE(yourfield, '') 
0

Gute Frage, und heute so aktuell wie es im Jahr 2011 ich eine gespeicherte Prozedur für diesen Einsatz war, wich nimmt den Namen einer Tabelle als Streit. Anschließend konvertiert es alle Nullwerte in leere Strings (''), wobei eine vorbereitete Anweisung und keine Cursor verwendet werden, da Cursor so nicht-SQL sind. Ich habe mit einigen 200 Spalten mit einem Tisch getestet und eine daraus resultierende prepaired Aussage, die lange über 15.000 Zeichen ist:

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 [email protected] 
    ) 
    ,";" 
); 

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

Im Haupt SQL-Datei gibt eine Aussage

SET @@group_concat_max_len = 60000; 

das könnte entscheidend sein.

Mehr Details (auf Niederländisch): http://wiki.devliegendebrigade.nl/SELECT_INTO_OUTFILE_%28MySQL%29

Grüße, Jeroen Strompf

Verwandte Themen