Potrzebujesz klauzuli GROUP BY lub bardziej złożonego zapytania.
SELECT field1, MAX(updated_date)
FROM mytable
GROUP BY field1
Dla przykładowych danych zwróci to 3 wiersze.
Bardziej prawdopodobne, że chcesz:
SELECT t1.field1, t3.max_date
FROM mytable AS t1
JOIN (SELECT MAX(t2.updated_date) AS max_date
FROM mytable AS t2
) AS t3
ON t1.updated_date = t3.max_date;
Dla przykładowych danych zwróci 1 wiersz:
ta3 2012-03-11 11:05:56
Spośród głównych DBMS tylko MySQL pozwala na pominięcie klauzuli GROUP BY, gdy na liście wyboru występuje mieszanka kolumn zagregowanych i nieagregujących. Standard SQL wymaga klauzuli GROUP BY i należy wymienić w niej wszystkie kolumny nie zagregowane. Czasami w MySQL pominięcie klauzuli GROUP BY daje żądaną odpowiedź; jednak najczęściej daje nieoczekiwaną odpowiedź.