MySQL:获取最新的记录集

我有一个包含以下列的数据库表:

id代码值datetime时间戳。

在该表中,唯一唯一的值驻留在ID中,即主键。

我想根据datetime值检索此表中最后一个不同的记录集。例如,下面就是我的表

id   code   value   datetime               timestamp
1    1023   23.56   2011-04-05 14:54:52    1234223421
2    1024   23.56   2011-04-05 14:55:52    1234223423
3    1025   23.56   2011-04-05 14:56:52    1234223424
4    1023   23.56   2011-04-05 14:57:52    1234223425
5    1025   23.56   2011-04-05 14:58:52    1234223426
6    1025   23.56   2011-04-05 14:59:52    1234223427
7    1024   23.56   2011-04-05 15:00:12    1234223428
8    1026   23.56   2011-04-05 15:01:14    1234223429
9    1025   23.56   2011-04-05 15:02:22    1234223430

我想要检索ID为4,7,8和9的记录,即具有不同代码的最后一组记录(基于datetime值)。我所强调的只是我正在尝试实现的一个例子,因为这个表将最终包含数百万条记录,以及数百个单独的代码值。

我可以使用什么SQL语句来实现这一点?我似乎无法使用单个SQL语句完成它。我的数据库是MySQL 5。

谢谢。

这应该适合你。

 SELECT * 
 FROM [tableName] 
 WHERE id IN (SELECT MAX(id) FROM [tableName] GROUP BY code)

如果id是AUTO_INCREMENT,则不需要担心datetime计算成本要高得多,因为最新的datetime也将具有最高的ID。

http://stackoverflow.com/questions/5554075/mysql-get-last-distinct-set-of-records

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:MySQL:获取最新的记录集