Я создаю оператор mysql, который разбивает результаты на страницы с помощью LIMIT x, n
(где x
- это смещение и n
возвращенных записей).mysql select statement with limit offset больше фактических записей
Смещение создается с использованием GET-Vars в форме page=x
.
Теперь у Google есть некоторые странные записи в своем индексе, которые исходят из старых обходов, где переменная страницы превышает фактическое количество записей в результирующем наборе.
Значит, запрос создается с переменной страницы на что-то вроде LIMIT 1000, 30
-.. Но запрос будет возвращать только 900
записи (так как содержание таблицы изменилось между тем Это возвращает пустой результат-набор, конечно
Есть ли способ сказать mysql, что если смещение превышает возвращаемые записи, чтобы просто показать последний возможный результат? Я не хочу делать дополнительный запрос, используя сначала COUNT()
, так как это удвоит нагрузку на mysql-server (сейчас я использую SQL_CALC_FOUND_ROWS
, чтобы определить общее количество записей, которые запрос вернет без LIMIT
-Statement.
Таким образом, вы полагаетесь на несвежих ссылки? – Drew
Есть ли способ избежать использования MySQL для обеспечения этого? Не могли бы вы включить это в свою бизнес-логику? –
Пожалуйста, покажите нам столбцы в этой таблице. –