Първо, не трябва да избягвате името на колоната с единични кавички, тъй като не е низов литерал.
Второ, можете да направите подзаявка, която отделно получава най-новото време за всеки c_id
и го свържете обратно с оригиналната таблица, за да получите останалите колони.
SELECT a.*
FROM message a
INNER JOIN
(
SELECT c_id, MAX(time) time
FROM message
GROUP BY c_id
) b ON a.c_id = b.c_id AND
a.time = b.time
или
SELECT a.*
FROM message a
WHERE a.time =
(
SELECT MAX(time) time
FROM message b
WHERE a.c_id = b.c_id
)