LIMIT केवल कथन द्वारा लौटाए गए परिणामों की संख्या को रोकता है। आप जो खोज रहे हैं उसे आम तौर पर विश्लेषणात्मक/विंडो/रैंकिंग फ़ंक्शन कहा जाता है - जो MySQL समर्थन नहीं करता है लेकिन आप चर का उपयोग करके अनुकरण कर सकते हैं:
SELECT x.*
FROM (SELECT t.*,
CASE
WHEN @category != t.category THEN @rownum := 1
ELSE @rownum := @rownum + 1
END AS rank,
@category := t.category AS var_category
FROM TBL_ARTIKUJT t
JOIN (SELECT @rownum := NULL, @category := '') r
ORDER BY t.category) x
WHERE x.rank <= 3
अगर आप नहीं बदलते हैं SELECT x.*
, परिणाम सेट में rank
. शामिल होगा और var_category
मान - यदि ऐसा नहीं है तो आपको वे कॉलम निर्दिष्ट करने होंगे जो आप वास्तव में चाहते हैं।