Смещение начиная с id

255
11 мая 2017, 14:03

Есть новостная лента, как получать следующую порцию новостей (10шт) начиная с последней? Дело в том что выдача формируется не по хронологическому порядку, т.е. я должен получать id последней выведенной новости на странице и плясать от неё

И что делать в случае если новость была удалена (мы передали id, который уже не существует)?

Answer 1

Для решения задачи, к заданной сортировке добавьте сортировку по id. В повторный запрос надо передавать значения полей id и поля сортировки из последней строки первоначального запроса. Запрос будет выглядеть так:

 SELECT
      nl.Id,
      nl.'поле сортировки',
      ....
 FROM 'новостная лента' AS nl
 WHERE
   (nl.'поле сортировки' > 'значение поля сортировки из последней строки предыдущего набора')
   OR (
     nl.'поле сортировки' = 'значение поля сортировки из последней строки предыдущего набора'
     AND nl.Id < 'значение id из последней строки предыдущего набора'
      )
 ORDER BY nl.'поле сортировки' ASC, nl.id DESC
 LIMIT 10;

Пример работы на rextester

READ ALSO
Помогите сформировать SQL запрос

Помогите сформировать SQL запрос

Добрый деньУ меня на сайте нужно вывести товары, но проблема в том, что вся информация разбросана по разным таблицам БД

290
Gzcompress записывает в БД кракозябры

Gzcompress записывает в БД кракозябры

Есть поле в БД с типом text и сравнением utf8_general_ciВ данном поле планирую хранить массив, делаю следующим образом:

287
Как устроить ловушку для хакера, или достойно отбивать атаки?

Как устроить ловушку для хакера, или достойно отбивать атаки?

Ребята выручайтеМеня взломали и в наглую соединились со мной требуя денег

432
phpbb3 авторизация на форуме

phpbb3 авторизация на форуме

доброго времени суток , пишу авторизацию через андройд регистрация работает и вносит все поля в базу все как надо протестировл 10 раз проблем...

361