Thread SQL - Sprachauswahl WHERE-Klausel mit "Fallback"?: Geht sowas?
(5 answers)
Opened by renee at 2006-01-31 00:08
Benutze Datenbank ist MySQL 4.1 mit Standard MyISAM Tabellen.
Ich habe hier eine Tabelle für Übersetzungen: Code: (dl
)
1 CREATE TABLE translations ( item_id ist der Foreign Key der das gesuchte Element referenziert (zur id aus der Tabelle items). Jetzt will ich aus dieser Tabelle alle übersetzten item_name und item_description für eine bestimmte Sprache und einen bestimmten level (der ist in der Tabelle items definiert) abfragen. Das sieht bisher so aus: Code: (dl
)
1 SELECT i.id, i.level, t.item_name, t.item_desciption Alles prima solange alle Elemente übersetzt sind. Wenn nicht fehlt's eben und das ist nicht gut. Andere Alternative wäre die Sprachklausel rauszuwerfen und nach Item-ID zu gruppieren: Code: (dl
)
1 SELECT i.id, i.level, t.item_name, t.item_desciption Dann hab ich zwar immer einen String den ich anzeigen kann, aber dafür völliges Sprachkauderwelsch. Die zuerst in die Tabelle eingetragene Übersetzung für ein Item wird zurückgegeben. Jetzt würde ich die beiden Varianten gerne kombinieren: Wenn eine Übersetzung für die vorgegebene Sprache vorhanden ist soll die zurückgegeben werden, sonst eben die zuerst eingetragene. Und ich steh' mit beiden Füssen auf'm Schlauch... Edit: DB-Typ nachgetragen\n\n <!--EDIT|Cremator|1138645368--> |