在我们日常工作中,会有这样的需求,假设一张学生表有主键、姓名、学号、年龄、创建时间等字段,但是我们有个需求就是:根据学号分组且每条数据都是创建时间为最新的数据
表结构如下:
CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(20) DEFAULT NULL, `password` varchar(20) DEFAULT NULL, `age` int(11) DEFAULT NULL, `sex` char(255) DEFAULT NULL, `email` varchar(20) DEFAULT NULL, `idCard` varchar(100) DEFAULT NULL COMMENT '学号', `time` datetime DEFAULT NULL COMMENT '创建时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8
实现思路1:
- 子查询
(SELECT 统一信用代码, MAX(更新时间) AS max_time FROM your_table GROUP BY 统一信用代码)
用于找出每个统一信用代码