luti: MySQL CONCAT mit NULL-Argument

Hallo,

mehrere Strings lassen sich in MySQL bekanntlich mit concat zusammenfügen. Das Ergebnis ist jedoch NULL, wenn eines der Argumente NULL ist. Gibt es eine Möglichkeit, sich den hinzugefügten String als Ergebnis auszugeben, auch wenn der Ausgangsstring NULL ist?

In meinem Beispiel möchte ich in eine Kommentarspalte einen Kommentar anhängen, doch ist dieser zu Beginn leer ...

  
update xyz set comment = CONCAT(comment, '(verändert am 16.08.2008)')

ok, ich könnte einfach zwei Abfragen starten und als Bedingung einmal "ist leer" und einmal "ist nicht leer" abfragen. Elegant ist das aber nicht ... ;)

Dank & Gruß,
luti

  1. Hallo

    mehrere Strings lassen sich in MySQL bekanntlich mit concat zusammenfügen. Das Ergebnis ist jedoch NULL, wenn eines der Argumente NULL ist. Gibt es eine Möglichkeit, sich den hinzugefügten String als Ergebnis auszugeben, auch wenn der Ausgangsstring NULL ist?

    Ja, das ist ein ...

    update xyz set comment = CONCAT(comment, '(verändert am 16.08.2008)')

      
    ... typischer Einsatzfall für [COALESCE()](http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#function_coalesce):  
      
    ~~~sql
    UPDATE  
        xyz  
    SET  
        comment = CONCAT(COALESCE(comment, ''), '(verändert am 16.08.2008)')
    

    Freundliche Grüße

    Vinzenz

    1. Hallo,

      UPDATE

      xyz
      SET
          comment = CONCAT(COALESCE(comment, ''), '(verändert am 16.08.2008)')

        
      danke, funktioniert super ... ;)