За този конкретен въпрос max(language)
трябва да работи, защото d е по-малко от e.
РЕДАКТИРАНЕ (Решение, което няма да се счупи):
Добавете max(case language when 'default' then 0 else 1 end)
Редактиране 2 (Още по-добре):
Добавете max(case language when 'english' then 1 else 0 end)
така че дори няма да получите дублирани стойности, ако добавите още езици към вашия in()
раздел
РЕДАКТИРАНЕ № 2:
Както обещах, ето ме с ново съзнание за понеделник сутрин и получих правилното запитване за вашите нужди :-)
Опитайте
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;
Обяснение:GROUP_CONCAT и LTRIM