ID của bạn tăng dần. sử dụng cái đó.
select ...
from
.....
where id post_in
(select max(post_id) from table group by category)
nếu bạn biết có bao nhiêu danh mục, bạn có thể làm điều đó tốt hơn bằng cách sử dụng
where post id in
(select post_id from table where category=1 order by time desc limit 1
union
select post_id from table where category=2 order by time desc limit 1
union
select post_id from table where category=3 order by time desc limit 1
union
select post_id from table where category=4 order by time desc limit 1)
hoặc bạn có thể sử dụng các tham số sẽ cung cấp cho bạn kết quả hoàn hảo nhưng truy vấn rất chậm
select * from
(select
@rn:=if(@prv=category_id, @rn+1, 1) as rId,
@prv:=category_id as category_id,
timestamp,
other columns
from (select category_id, timestamp, other columns from ... )a
join
(select @prv:=0, @rn:=0)tmp
order by
category_id , timestamp desc) a
where rid<=1