Tôi biết rằng điều này đã cũ nhưng tôi không thấy phản hồi tương tự vì vậy đây là giải pháp tôi sẽ sử dụng.
Đầu tiên, tôi sẽ thực hiện một truy vấn đếm trên bảng để xem có bao nhiêu bản ghi tồn tại. Truy vấn này nhanh và thông thường thời gian thực hiện không đáng kể. Cái gì đó như:
SELECT COUNT(*) FROM table_name;
Sau đó, tôi sẽ xây dựng truy vấn của mình bằng cách sử dụng kết quả tôi nhận được từ tính là giới hạn của mình (vì đó là số hàng tối đa mà bảng có thể trả về). Cái gì đó như:
SELECT * FROM table_name LIMIT count_result OFFSET desired_offset;
Hoặc có thể là một cái gì đó như:
SELECT * FROM table_name LIMIT desired_offset, count_result;
Tất nhiên, nếu cần, bạn có thể lấy count_result trừ hệ số mong muốn để lấy giá trị thực tế, chính xác để cung cấp làm giới hạn. Việc chuyển giá trị "18446744073709551610" không có ý nghĩa gì nếu tôi thực sự có thể xác định giới hạn thích hợp để cung cấp.