MySQL verkettet Felder, ignoriert aber leere Felder

8

Ich habe eine MySQL-Datenbank mit einer Liste von Personen, einschließlich ihrer Adresse, die ich als ein Feld in einer Abfrage zurückgeben möchte. Es ist in address1, address2, address3, address4, post_code aufgeteilt und ich möchte etwas wie das Folgende tun

%Vor%

Also werde ich am Ende eine vollständige Zeichenfolge ihrer Adresse in address haben, was gut funktioniert, aber wenn einige der Felder leer sind, werde ich am Ende mit vielen doppelten Leerzeichen enden. Wie kann ich die zusätzlichen Leerzeichen entfernen? Gibt es einen einfacheren Weg als ein IF () für jedes Feld?

    
jackbot 26.02.2010, 16:00
quelle

3 Antworten

17
%Vor%

Wenn Ihre leeren Felder tatsächlich NULL sind, können Sie die NULLIF -Konstrukte weglassen:

%Vor%     
Quassnoi 26.02.2010, 16:05
quelle
2

verwenden Sie CONCAT_WS statt CONCAT

%Vor%     
a1ex07 26.02.2010 16:05
quelle
1

Anstelle von IFNULL können Sie auch COALESCE verwenden, das ist für diese Aufgabe vorgesehen.

    
Frank Heikens 27.02.2010 09:54
quelle

Tags und Links