Я знаю, що це старе, але я не бачив подібної відповіді, тому це рішення, яке я б використав.
По-перше, я би виконав запит підрахунку на столі, щоб побачити, скільки записів існує. Цей запит швидкий, і зазвичай час його виконання незначний. Щось на зразок:
SELECT COUNT(*) FROM table_name;
Тоді я буду будувати свій запит, використовуючи результат, отриманий від підрахунку, як мій ліміт (оскільки це максимальна кількість рядків, яку таблиця може повернути). Щось на зразок:
SELECT * FROM table_name LIMIT count_result OFFSET desired_offset;
Або можливо щось на кшталт:
SELECT * FROM table_name LIMIT desired_offset, count_result;
Звичайно, якщо потрібно, ви можете відняти бажаний зсув від count_result, щоб отримати фактичне, точне значення для подачі в якості межі. Передача значення "18446744073709551610" просто не має сенсу, якщо я дійсно можу визначити відповідний ліміт, який потрібно надати.