Đối với câu hỏi cụ thể này max(language)
nên hoạt động vì d nhỏ hơn e.
CHỈNH SỬA (Sự cẩn thận sẽ không bị vỡ):
Thêm max(case language when 'default' then 0 else 1 end)
Edit2 (Thậm chí tốt hơn):
Thêm max(case language when 'english' then 1 else 0 end)
vì vậy bạn thậm chí sẽ không nhận được các giá trị trùng lặp nếu bạn thêm nhiều ngôn ngữ hơn vào in()
của mình phần
CHỈNH SỬA Nr. 2:
Như tôi đã hứa, tôi ở đây với một tâm trí mới vào thứ hai và có truy vấn phù hợp với nhu cầu của bạn :-)
Hãy thử
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;
Giải thích: GROUP_CONCAT và LTRIM