Как отсортировать товар по категориям

123
12 июля 2021, 04:40

Как отсортировать товар по категориям, чтобы товар выводился по очереди по 1 товару из категории, например, у нас есть

Товар , категория товара

1 товар, категория 1
2 товар, категория 1
3 товар, категория 2
4 товар, категория 2
5 товар, категория 3
6 товар, категория 3

На выходе нужно получить такой вид

1 товар, категория 1
3 товар, категория 2
5 товар, категория 3
2 товар, категория 1
4 товар, категория 2
6 товар, категория 3

То есть мы выводим по 1 товару каждой категории, затем еще раз по 1 товару каждой категории и так, пока не закончатся все товары

Как это можно реализовать? Написание кода за меня не прошу, буду рад любой идеи

Для получения товаров, использую, товаров 100к+

Product::whereIn('category_id', [id])->paginate();
Answer 1

Спасибо Akina

Сделал так:

DB::select('SELECT id, category_id, @lag:=if(@partition=category_id, @lag+1, 1) as number, @partition:=category_id FROM `products` where category_id in(372,380) order by number ASC');

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

READ ALSO
Spring Boot игнорирует CSS / JS при загрузке страницы

Spring Boot игнорирует CSS / JS при загрузке страницы

Моя страница (ordermustache) использует несколько стилей CSS (внешних и локальных), изображения, фоновое видео и JS-элемент

113
Как использовать rxjava для передачи сообщений?

Как использовать rxjava для передачи сообщений?

У меня есть поток который принимает посылки по UART

91
Пересоздаётся файл

Пересоздаётся файл

Только часть кода для смысла

85