För just denna fråga max(language)
bör fungera eftersom d är mindre än e.
EDIT (Lösning som inte går sönder):
Lägg till max(case language when 'default' then 0 else 1 end)
Edit2 (Ännu bättre):
Lägg till max(case language when 'english' then 1 else 0 end)
så du får inte ens dubbelvärden om du lägger till fler språk till din in()
avsnitt
EDIT Nr. 2:
Som jag lovade, här är jag med ett nytt måndagsmorgonsinne och fick rätt fråga för dina behov :-)
Prova
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;
Förklaring:GROUP_CONCAT och LTRIM