LIMIT stoppar bara antalet resultat som uttalandet returnerar. Det du letar efter kallas i allmänhet analytiska/fönster-/rankningsfunktioner - som MySQL inte stöder men du kan emulera med hjälp av variabler:
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
Om du inte ändrar SELECT x.*
, kommer resultatuppsättningen att inkludera rank
och var_category
värden - du måste ange de kolumner du verkligen vill ha om så inte är fallet.