solaris-ch
Goto Top

MySQL Into Outfile Felder mit NULL nicht anzeigen...

Hallo zusammen

folgendes Problem ergibt sich bei meinem neusten Vorhaben:

Ich Selektiere mit einem MySQL Script diverse Tabellen und Spalten.
Nicht alle Felder sind mit Daten gefüllt. Es gibt etliche, welche NULL enthalten, also leer sind.

Anschliessend speichere ich das Result Set mit: INTO OUTFILE in eine .txt Datei.

Nun mein Problem:

Bei den Feldern welche leer sind, schreibt MySQL automatisch \N in das Outfile.
Beispiel:
112693596;;;;;;Monsieur;;XXX;;Daniel;;\N;;\N;;strasse 23;;5548;;ORTSCHAFT;;CH;;French;;CUSTOMERCAT;;;;;;CUSTOMERCAT2

Die Felder bei denen nur ;;; zu sehen ist, wurden absichtlich als Platzhalter im Select - Statement eingepflegt.

Hat jemand eine Ahnung wie ich die \N rausbringe, ohne das File zusätzlich mit einem Batch zu editieren?

Besten Dank für eure Hilfe!

Content-ID: 82257

Url: https://administrator.de/contentid/82257

Ausgedruckt am: 15.11.2024 um 23:11 Uhr

solaris-ch
solaris-ch 04.03.2008 um 12:12:26 Uhr
Goto Top
Nachtrag:

Habs jetzt mal mit CONCAT_WS umgesetzt. Das Problem ist nur, das er jedes 'Feld' welches leer ist mit \ beginnt...:

123456789\;\;\;\;\;\;Monsieur\;\;test\;\;name\;\;\;\;rte La Neuveville\;

nur ist jetzt noch der doofe \ Backslash drinn...
Biber
Biber 04.03.2008 um 12:38:38 Uhr
Goto Top
Moin solaris,

spricht irgendetwas dagegen, eine IFNULL()-Prüfung einzubauen bei den Feldern, die Du so tolerant als NULLABLE definiert hast?

Abgesehen davon stimmen eigentlich das Aussehen der Datensatzzeile und Deine Aussage "das er jedes 'Feld' welches leer ist mit \ beginnt...:" nicht übeein.
Von hier aus sieht es so aus, als würde ein Backslash an jedes Feld angehängt.

Wie wäre es mal mit dem SQL (oder dem relevanten Teil davon vor den FROMs und WHEREs?

Grüße
Biber
solaris-ch
solaris-ch 04.03.2008 um 14:44:50 Uhr
Goto Top
Halli Hallo

und wiedereinmal mehr hat mir ein Stichwort aus diesem Forum die ersehnte Lösung gebracht...:

,IFNULL(b.FIRSTNAME,' ')  
Damit ersetze ich ein leeres Feld mit einem Space und das Problem ist 'gelöst'. Vielleicht nicht die sauberste Variante, aber es funktioniert für meinen Verwendungszweck bestens!

Besten Dank für die Hilfe!