इस विशेष प्रश्न के लिए 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