MySQL có một số hỗ trợ đặc biệt cho loại điều này. Đầu tiên, hãy bao gồm SQL_CALC_FOUND_ROWS
trong phần CHỌN của bạn:
SELECT SQL_CALC_FOUND_ROWS *
FROM Badges
WHERE UID = '$user'
ORDER by Date DESC
LIMIT 10 -- Or whatever
Sau đó, kéo các hàng của bạn ra rồi xem ngay FOUND_ROWS()
như thế này:
SELECT FOUND_ROWS()
để có số hàng phù hợp với truy vấn ban đầu của bạn mà không cần xem xét mệnh đề LIMIT.
Đây là cách dành riêng cho MySQL nhưng sẽ nhanh hơn một chút so với thực hiện hai truy vấn.