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.

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top