Voor deze specifieke vraag max(language)
zou moeten werken omdat d kleiner is dan e.
EDIT (oplossing die niet kapot gaat):
Voeg max(case language when 'default' then 0 else 1 end)
Edit2 (Nog beter):
Voeg max(case language when 'english' then 1 else 0 end)
dus je krijgt niet eens dubbele waarden als je meer talen toevoegt aan je in()
sectie
BEWERK Nr. 2:
Zoals ik beloofde, ben ik hier met een frisse nieuwe maandagochtendgeest en heb ik de juiste vraag voor uw behoeften :-)
Probeer
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;
Uitleg:GROUP_CONCAT en LTRIM