Du behöver antingen en GROUP BY-sats eller en mer komplex fråga.
SELECT field1, MAX(updated_date)
FROM mytable
GROUP BY field1
För exempeldata kommer detta att returnera 3 rader.
Mer troligt är att du vill:
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;
För exempeldata kommer detta att returnera 1 rad:
ta3 2012-03-11 11:05:56
Av de större DBMS är det bara MySQL som tillåter dig att utelämna GROUP BY-satsen när du har en blandning av aggregat och icke-aggregerade kolumner i urvalslistan. SQL-standarden kräver GROUP BY-satsen och du måste lista alla icke-aggregerade kolumner i den. Ibland, i MySQL, ger utelämnande av GROUP BY-satsen det svar du vill ha; så ofta som inte lyckas den dock ge ett oväntat svar.