Bạn cần mệnh đề GROUP BY hoặc một truy vấn phức tạp hơn.
SELECT field1, MAX(updated_date)
FROM mytable
GROUP BY field1
Đối với dữ liệu mẫu, điều này sẽ trả về 3 hàng.
Nhiều khả năng, bạn muốn:
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;
Đối với dữ liệu mẫu, điều này sẽ trả về 1 hàng:
ta3 2012-03-11 11:05:56
Trong số các DBMS chính, chỉ MySQL cho phép bạn bỏ qua mệnh đề GROUP BY khi bạn có hỗn hợp các cột tổng hợp và cột không tổng hợp trong danh sách chọn. Tiêu chuẩn SQL yêu cầu mệnh đề GROUP BY và bạn phải liệt kê tất cả các cột không tổng hợp trong đó. Đôi khi, trong MySQL, việc bỏ qua mệnh đề GROUP BY sẽ tạo ra câu trả lời bạn muốn; thường xuyên, tuy nhiên, nó quản lý để đưa ra một câu trả lời bất ngờ.