Vous avez besoin d'une clause GROUP BY ou d'une requête plus complexe.
SELECT field1, MAX(updated_date)
FROM mytable
GROUP BY field1
Pour les exemples de données, cela renverra 3 lignes.
Plus probablement, vous voulez :
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;
Pour les exemples de données, cela renverra 1 ligne :
ta3 2012-03-11 11:05:56
Parmi les principaux SGBD, seul MySQL vous permet d'omettre la clause GROUP BY lorsque vous avez un mélange d'agrégats et de colonnes non agrégées dans la liste de sélection. La norme SQL requiert la clause GROUP BY et vous devez y répertorier toutes les colonnes non agrégées. Parfois, dans MySQL, omettre la clause GROUP BY produit la réponse souhaitée; le plus souvent, cependant, il parvient à donner une réponse inattendue.