Untuk pertanyaan khusus ini max(language)
harus bekerja karena d lebih kecil dari e.
EDIT (Solusi yang tidak akan rusak):
Tambahkan max(case language when 'default' then 0 else 1 end)
Sunting2 (Bahkan lebih baik):
Tambahkan max(case language when 'english' then 1 else 0 end)
jadi Anda bahkan tidak akan mendapatkan nilai duplikat jika Anda menambahkan lebih banyak bahasa ke in()
bagian
EDIT No. 2:
Seperti yang saya janjikan, inilah saya dengan pikiran baru di senin pagi dan mendapatkan pertanyaan yang tepat untuk kebutuhan Anda :-)
Coba
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;
Penjelasan:GROUP_CONCAT dan LTRIM