LIMIT stopt alleen het aantal resultaten dat het statement retourneert. Wat u zoekt, worden over het algemeen analytische/windowing/ranking-functies genoemd - die MySQL niet ondersteunt, maar u kunt emuleren met behulp van variabelen:
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
Als je SELECT x.*
niet verandert , de resultatenset bevat de rank
en var_category
waarden - u moet de kolommen specificeren die u echt wilt als dit niet het geval is.