@geyurgfuyewgfyuguy

SQL вывод записей по кругу, как реализовать?

Всем привет, подскажите, задача стоит такая. Необходимо получить рекомендуемые записи по кругу. Идут записи с ID, у меня сейчас такой запрос:
DB::table('posts')
		                        ->select('*')
		                        ->where('id', '>', $getPost->id)
		                        ->where('city', '=', $getPost->city)
		                        ->where('approve', '=', 1)
		                        ->orderBy('id', 'asc')
		                        ->limit(10)
		                        ->get();

Суть в том, что если запись является с ID последней в базе, то записей рекомендационных нет, мне необходимо если записей нет дальше, начинать с ID 1, то есть с начала рекомендовать. Своего рода перелинковка.

Подскажите, что добавить нужно в запрос, чтобы получилась моя задумка.
  • Вопрос задан
  • 95 просмотров
Пригласить эксперта
Ответы на вопрос 2
alfss
@alfss
https://career.habr.com/alfss
Сдвиньте пагинация на 1 страницу и дополните данные , запомните позицию , следующую страницу начинаете с учетом сдвига. Более корректный вопрос с такой постановкой не возможен по моему мнению .
Ответ написан
Комментировать
iMedved2009
@iMedved2009
Не люблю людей
DB::table('posts')
                            ->select('*')
                            ->where('id', '>', $getPost->id)
                            ->where('city', '=', $getPost->city)
                            ->where('approve', '=', 1)
                            ->orderByRaw('(id > ?) desc, id asс' , [$getPost->id])
                            ->limit(10)
                            ->get();


А модели вы из каких побуждений не используете? Вопрос снимается, я у вас это уже спрашивал.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы