коллеги помоги правильно написать запрос столкнулся с проблемой что нужно вывести определенно количество записей с определенным параметром к примеру
id name cat time
1 aa 0 2019-03-21
2 ad 0 2019-02-21
3 dd 1 2019-03-18
4 dd 2 2019-03-21
5 as 1 2019-01-02
и таких записей может быть много как мне выбрать по 50 последних записей по каждой категории cat ?
лимит не знаю как можно тут использовать нашел решение с UNION но не уверен что ето правильное решение к примеру
SELECT * FROM table where cat=0 ORDER BY time DESC limit 50
UNION
SELECT * FROM table where cat=1 ORDER BY time DESC limit 50
так как с результатирующей таблицы мне еще нужно выполнить определенные операции
SELECT *
FROM ( SELECT `table`.*,
IF(@cat=`table`.cat,
@rownum:=@rownum+1,
@rownum:=1+LEAST(0,@cat:=`table`.cat)) rown
FROM `table`,
(SELECT @rownum:=1, @cat:='_') q1
ORDER BY cat, time DESC
) q2
WHERE rown <= 50
ORDER BY cat, time DESC
Если количество записей в каждой группе значительно (на порядки) больше 50, разумнее реализовать это в формате хранимой процедуры. Курсор по cat, копирование по 50 записей для каждого значения во временную таблицу, и затем select из неё в выходной поток.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Как перенаправлять запросы с помощьюhtaccess и сделать исключение
Друзья, я не силен в PHP и Ajax, по этому прошу помощиИмеется файл простой index
Я сделал обычный маршрут, чтобы просто возвращал мне вид через контроллер (если сделать функцию для маршрута и туда добавить: return view('manageraddworker');...