mysql har en "snyd" for dette:
select *
from mytable
group by cid;
Det er alt hvad du behøver, for i mysql giver det dig mulighed for at ikke aggregere de ikke-grupperede kolonner (andre databaser ville give en syntaksfejl), i hvilket tilfælde den kun udsender den første forekomst af hver gruppe-efter værdi(er). Bemærk dog, at dette ikke garanterer måden hvor den "første" forekomst bestemmes (det vil kun være, hvordan rækkerne læses ind)
Hvis du ønsker en særlig første forekomst, sorter først, og anvend derefter gruppe-efter-snyden:
select *
from (
-- order by the "time" column descending to get the "most recent" row
select * from mytable order by time desc
) x
group by cid