Raketenwilli: NULL Wert macht CONCAT zu NULL

Beitrag lesen

problematische Seite

CONCAT(
  IF( med1.album       IS NULL, '', med1.album ),  '@',
  IF( med1.titel       IS NULL, '', med1.titel ),  '@',
  IF( med1.url         IS NULL, '', med1.url ),    '@',
  IF( med1.youtube_id  IS NULL, '', med1.youtube_id )
)

Naja. Man könnte auch vorbeugen wenn man die Hand auf dem Programm und den Tabellen hat. Ich weiß ja nicht, wie lang Deine Ergebnislisten sind, aber wenn die SEHR lang sind, dann kostet das den Prozessor auf dem Server einige Herzschläge extra.

Kann man vermeiden:

UPDATE med1 set album      ='' where album      =NULL;
ALTER TABLE med1 ALTER album  SET DEFAULT '';

UPDATE med1 set titel      ='' where titel      =NULL;
ALTER TABLE med1 ALTER titel  SET DEFAULT '';

UPDATE med1 set url        ='' where url        =NULL;
ALTER TABLE med1 ALTER url  SET DEFAULT '';

UPDATE med1 set youtube_id ='' where youtube_id =NULL;
ALTER TABLE med1 ALTER youtube_id  SET DEFAULT '';

Und dann das CONCAT() ohne das IF()-Geraffel.

P.S.

  1. Ich glaube ja auch nicht, dass überhaupt alle Spalten betroffen sind.
  2. Das obige geht natürlich nur, wenn die Spaltentypen als String festgelegt sind.