Bạn có thể sử dụng LIMIT m,n
để vừa giới hạn số lượng kết quả bạn nhận được vừa bù đắp kết quả bằng một số tiền nhất định.
Bây giờ bạn có thể làm điều gì đó như:
SELECT * FROM questions WHERE QuizID=1 LIMIT $page,5;
Nơi bạn tính toán $page
dựa trên $_GET
Biến đổi. Nhưng điều này sẽ không giải quyết được tính ngẫu nhiên của bạn.
Bạn luôn có thể gieo RAND ($ key) bằng một khóa nhất định mà bạn lưu trong phiên của mình để bạn có thể ORDER BY RAND($key)
và sử dụng kỹ thuật giới hạn ở trên.
Có lẽ cách đơn giản nhất để thực hiện sẽ là lấy toàn bộ tập hợp kết quả, trộn nó và lưu vào bộ nhớ cache. Sau đó, sử dụng php để chỉ hiển thị một phần cụ thể của bộ nhớ cache.
Vì điều này có liên quan đến phân trang. Hãy để tôi nói cho bạn biết, GIỚI HẠN m, n có thể không nhanh như bạn nghĩ. Tìm hiểu cách cải thiện nó và đọc thêm về Phân trang hiệu quả bằng MySQL