LIMIT chỉ dừng số lượng kết quả mà câu lệnh trả về. Những gì bạn đang tìm kiếm thường được gọi là các hàm phân tích / cửa sổ / xếp hạng - mà MySQL không hỗ trợ nhưng bạn có thể mô phỏng bằng cách sử dụng các biến:
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
Nếu bạn không thay đổi SELECT x.*
, tập hợp kết quả sẽ bao gồm rank
và var_category
giá trị - bạn sẽ phải chỉ định các cột bạn thực sự muốn nếu đây không phải là trường hợp.