Можно сразу в LIMIT указать (page-1)*onpage, onpage + 1
, и если rowCount больше onpage — выводить Next, в ином случае (если равны или меньше) — нет.
Далее уже делать срез из полученных строк, отсекая этот элемент со следующей страницы.
Это никакое не извращение, логичное и наиболее верное решение, на мой взгляд.
Есть и решение с другой стороны:
В случае, когда количество постов уже совпало - сделать ещё один запрос, получить auto_increment (если вы его используете) и сравнить его с идентификатором последней полученной строки.