Je hebt ofwel een GROUP BY-clausule nodig of een complexere zoekopdracht.
SELECT field1, MAX(updated_date)
FROM mytable
GROUP BY field1
Voor de voorbeeldgegevens levert dit 3 rijen op.
Waarschijnlijker wil je:
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;
Voor de voorbeeldgegevens levert dit 1 rij op:
ta3 2012-03-11 11:05:56
Van de belangrijkste DBMS kunt u alleen met MySQL de GROUP BY-component weglaten wanneer u een combinatie van aggregaten en niet-geaggregeerde kolommen in de selectielijst heeft. De SQL-standaard vereist de GROUP BY-component en u moet alle niet-geaggregeerde kolommen erin vermelden. Soms levert het weglaten van de GROUP BY-component in MySQL het gewenste antwoord op; zo vaak als niet, slaagt het er echter in om een onverwacht antwoord te geven.