Til dette specifikke spørgsmål max(language)
burde virke, fordi d er mindre end e.
EDIT (Løsning der ikke går i stykker):
Tilføj max(case language when 'default' then 0 else 1 end)
Edit2 (Endnu bedre):
Tilføj max(case language when 'english' then 1 else 0 end)
så du vil ikke engang få dobbelte værdier, hvis du tilføjer flere sprog til din in()
afsnit
EDIT Nr. 2:
Som jeg lovede, er jeg her med et friskt nyt mandag morgen sind og fik den rigtige forespørgsel til dine behov :-)
Prøv
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;
Forklaring:GROUP_CONCAT og LTRIM