您需要GROUP BY子句或更复杂的查询。
SELECt field1, MAX(updated_date) FROM mytable GROUP BY field1
对于示例数据,这将返回3行。
您更有可能想要:
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;
对于示例数据,这将返回1行:
ta3 2012-03-11 11:05:56
在主要的DBMS中,当select-list中包含聚合列和非聚合列的混合时,只有MySQL允许您省略GROUP BY子句。SQL标准需要GROUP
BY子句,并且您必须在其中列出所有非聚合列。有时,在MySQL中,省略GROUP BY子句会产生您想要的答案;但是,它设法经常给出一个意想不到的答案。



