Size: a a a

2020 September 11

АЗ

Алихан Закиров... in Laravel Pro
Artem Stepanenko
переделывать структуру базы уже не вариант
Ну не переделать но добавить
источник

АЗ

Алихан Закиров... in Laravel Pro
Поле
источник

АЗ

Алихан Закиров... in Laravel Pro
Лан забей тогда вот смотри
источник

s

s4b0t in Laravel Pro
а where в цикле не работает?
источник

AS

Artem Stepanenko in Laravel Pro
s4b0t
а where в цикле не работает?
не, куча запросов это вообще жесть, лучше уже выбрать все сразу одним запросом, и отфильтровать на ларе
если я правильно понял
источник

s

s4b0t in Laravel Pro
Artem Stepanenko
не, куча запросов это вообще жесть, лучше уже выбрать все сразу одним запросом, и отфильтровать на ларе
если я правильно понял
при чем тут куча запросов?
источник

АЗ

Алихан Закиров... in Laravel Pro
Берем запрос
SELECT *, COUNT(product_id) AS c FROM table WHERE filter_value IN ($filters) GROUP BY product_id HAVING c=count($filters)
источник

s

s4b0t in Laravel Pro
один запрос с кучей where
источник

АЗ

Алихан Закиров... in Laravel Pro
Перед этим $filters прогнать через array_unique
источник

АЗ

Алихан Закиров... in Laravel Pro
Но тут надо понимать, что если два продукта будут иметь одинаковые фильтры, то они попадут в выборку эту
источник

АЗ

Алихан Закиров... in Laravel Pro
Типа
Продукт 1
Фильтр 1,2

Продукт 2
Фильтр 1,2
источник

s

s4b0t in Laravel Pro
груп бай product id
источник

АЗ

Алихан Закиров... in Laravel Pro
s4b0t
груп бай product id
Спс
источник

АЗ

Алихан Закиров... in Laravel Pro
И второе что нужно понимать - having работает только перебором результата. Без индексов
источник

АЗ

Алихан Закиров... in Laravel Pro
Так шо может быть не быстро
источник

AS

Artem Stepanenko in Laravel Pro
тут в дбшном чате подсказали смотреть реляционное деление, кинули пару примеров, реально годные, чуть позже перешлю, как проверю подходит ли
источник

АЗ

Алихан Закиров... in Laravel Pro
Лучше всего конечно ввести колонку filters для продукта, куда писать через запятую его ид фильтров отсортированные по возрастанию и навесить индекс
источник

АЗ

Алихан Закиров... in Laravel Pro
И одним шустрым запросом можно выбрать товар
источник

AS

Artem Stepanenko in Laravel Pro
Алихан Закиров
Лучше всего конечно ввести колонку filters для продукта, куда писать через запятую его ид фильтров отсортированные по возрастанию и навесить индекс
ну такое, набор фильтров уникальный же может быть
источник

АЗ

Алихан Закиров... in Laravel Pro
Artem Stepanenko
ну такое, набор фильтров уникальный же может быть
И что?
источник