mysql a un "triche" pour cela :
select *
from mytable
group by cid;
C'est tout ce dont vous avez besoin, car dans mysql, cela vous permet de ne pas agréger les colonnes non groupées par (d'autres bases de données renverraient une erreur de syntaxe), auquel cas il ne produit que la première occurrence de chaque valeur groupée par. Notez cependant que cela ne garantira pas le chemin dans lequel la "première" occurrence est déterminée (ce sera simplement la façon dont les lignes sont lues)
Si vous voulez un particulier première occurrence, triez d'abord, puis appliquez la triche group-by :
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