LIMIT zatrzymuje tylko liczbę wyników zwracanych przez instrukcję. To, czego szukasz, to ogólnie funkcje analityczne/okienkowe/rankingowe – których MySQL nie obsługuje, ale możesz emulować za pomocą zmiennych:
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
Jeśli nie zmienisz SELECT x.*
, zestaw wyników będzie zawierał rank
i var_category
wartości - będziesz musiał określić kolumny, które naprawdę chcesz, jeśli tak nie jest.