आपकी आईडी वृद्धिशील हैं। इसका इस्तेमाल करें।
select ...
from
.....
where id post_in
(select max(post_id) from table group by category)
यदि आप जानते हैं कि कितनी श्रेणियां हैं, तो आप इसका उपयोग करके और भी बेहतर तरीके से कर सकते हैं
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)
या आप पैरामीटर का उपयोग कर सकते हैं जो आपको एक सही परिणाम देगा लेकिन एक बहुत ही धीमी क्वेरी
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