Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
$videos = Video::where('сategory_id','=', 14)
->orderByRaw("top_new DESC, date DESC")
->groupBy('compilation')
->take(3)->get();
Не выводить записи с повторяющим значением поля `compilation` кроме `compilation` = 0
compilation имеет значение (от 1000 - 10 000)
Пробую с groupBy но там проблема с сортировкой, не корректно выводит
Подскажите, как реализовать в laravel 5.1?
Не в сети
походу, нужен вложенный запрос, состоящий из двух запросов: в первом берется с условием (`compilation` = 0), а во втором условие наоборот (`compilation` <> 0) и присутствует директива distinct (или группировка), эти два запроса объединяются через union all. потом внешний запрос сортируется
Изменено Progdancer (17.11.2015 11:41:07)
Не в сети
мдя...
1. Программер, ты на 1 лярд записей свою идею попробуй.
2. Акул
группировки в таких конструкциях хоть и работают, но жрут больше
а) попробуй для начала к пхпАдмине построить необходимый запрос (напрямую в бд) и получить правильный ответ.
б) используй к своему запросу select префикс explain select - посмотри, как глубоко дёргается база, сколько времени и ресурсов жрёт твой запрос.
в) получив ответ строй ОРМ модели НЕ используя DB обвязку - работай от моделей -- всё кошерно работает, хоть и документирован ОРМ лары всего на 10%.
и на последок:
топикстартер плохо изложил условия.
исходя из вводных предлагаю поиграть с SELECT DISTINCT compilation WHERE compilation BETWEEN 1000 AND 10000
Не в сети
Страницы 1