mysqlにはこのための「チート」があります:
select *
from mytable
group by cid;
mysqlではしないことができるので、必要なのはそれだけです。 grouped-by以外の列を集約します(他のデータベースは構文エラーをスローします)。この場合、group-by値ごとに最初に出現するものだけが出力されます。ただし、これは方法を保証するものではないことに注意してください ここで「最初の」発生が決定されます(行が読み込まれる方法になります)
特定のが必要な場合 最初に出現し、最初に並べ替えてから、group-by cheatを適用します:
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