Có một tính năng phân trang, được tích hợp trong 2.2 và thực hiện điều gì đó tương tự như những gì bạn đang tìm kiếm:
Nhưng tôi không tin rằng nó sử dụng SQL_CALC_FOUND_ROWS
:nó thực hiện hai (hoặc ba, tùy thuộc vào cách bạn định cấu hình) các truy vấn riêng biệt để nhận kết quả và đó thường là cách chính xác để tiếp tục.
Nếu bạn thực sự nhấn mạnh vào việc sử dụng tính năng MySQL, tôi nghĩ bạn cần sử dụng SQL thô và ánh xạ tập kết quả. Đây là một ví dụ:
Số lượng hàng trong Doctrine 2
Trên một ghi chú hoàn toàn riêng biệt, hãy kiểm tra xem SQL_CALC_FOUND_ROWS
thực sự có giá trị sử dụng cho truy vấn cụ thể của bạn. Count được tối ưu hóa tốt trong MySQL cho các truy vấn giống như truy vấn bạn đang làm. Xem câu hỏi này cụ thể:
Cái nào nhanh nhất? CHỌN SQL_CALC_FOUND_ROWS TỪ `bảng` hoặc CHỌN COUNT (*)