इस प्रकार के परिणामों को अन्य RDBMS में विंडो फ़ंक्शंस द्वारा सबसे अच्छा नियंत्रित किया जाता है, लेकिन दुर्भाग्य से Mysql के पास कोई विंडो फ़ंक्शन नहीं है, इसलिए विकल्प के लिए एक ही समूह से संबंधित पंक्तियों के लिए रैंक असाइन करने के लिए उपयोगकर्ता परिभाषित चर का उपयोग करने का एक समाधान है
SELECT `id`, `category`, `names`
FROM (
SELECT *,
@r:= CASE WHEN @g = category THEN @r + 1 ELSE 1 END rownum,
@g:=category
FROM test
CROSS JOIN(SELECT @g:=NULL ,@r:=0) t
ORDER BY category,id desc
) c
WHERE c.rownum <=2
उपरोक्त क्वेरी आपको प्रति श्रेणी 2 हालिया रिकॉर्ड (आईडी के आधार पर) देगी, आप क्वेरी के अंतिम भाग को बदल सकते हैं, जहां प्रति समूह n परिणाम दिखाने के लिए किसी भी संख्या के लिए क्लॉज उदाहरण के लिए 3 रिकॉर्ड दिखाने के लिए WHERE c.rownum <= 3
और इसी तरह