Für diese spezielle Frage max(language)
sollte funktionieren, da d kleiner als e ist.
BEARBEITEN (Lösung, die nicht kaputt geht):
Fügen Sie max(case language when 'default' then 0 else 1 end)
hinzu
Edit2 (Noch besser):
Fügen Sie max(case language when 'english' then 1 else 0 end)
hinzu Sie erhalten also nicht einmal doppelte Werte, wenn Sie Ihrem in()
weitere Sprachen hinzufügen Abschnitt
EDIT-Nr. 2:
Wie versprochen bin ich hier mit einem frischen neuen Montagmorgengeist und habe die richtige Abfrage für Ihre Bedürfnisse :-)
Versuchen Sie es
SELECT value,
CASE group_concat(language)
WHEN 'default' then 'default'
ELSE LTRIM(REPLACE(group_concat(language SEPARATOR ' '),'default',''))
END as language,
externID
FROM demo
WHERE externID = 10
AND language in ('default','english')
GROUP BY value;
Erklärung:GROUP_CONCAT und LTRIM