Vinzenz Mai: MySQL: JOIN wenn Abfrage nicht erfolgreich

Beitrag lesen

Hallo,

Die Problemschilderung:

Es ist eine Tabelle vorhanden, welche folgende Felder enthält:
id INT auto_increment PRIMARY_KEY
key TEXT NOT NULL
en\_value TEXT NULL
de\_value TEXT NULL
fr\_value TEXT NULL

Wenn jedoch kein Wert für den deutschen Ausdruck hinterlegt ist, so möchte ich den englischen auslesen.

SELECT de\_value, en\_value FROM lang WHERE key = 'hello';

Du suchst COALESCE():

  
SELECT                                                -- Gib mir den ersten  
    COALESCE(de_value, en_value, fr_value, '') value  -- von NULL verschiedenen  
                                                      -- Eintrag der Parameterliste  
FROM  
    lang  
WHERE  
    `key` = 'hello'            -- key ist ein Spaltenname, den ich auf  
                               -- *jeden* Fall vemeide  

Nein, diese komplexen IF-Konstrukte sollte man lieber lassen.

Freundliche Grüße

Vinzenz