Mysql 分组后获取最新一条记录

目录

脚本

基于id自增

基于createTime


脚本

CREATE TABLE `t_user` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(255) NOT NULL,`action` varchar(255) NOT NULL,`create_time` datetime NOT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;INSERT INTO  `t_user`(`id`, `name`, `action`, `create_time`) VALUES (1, '张三', '技能1', '2023-02-28 01:01:01');
INSERT INTO  `t_user`(`id`, `name`, `action`, `create_time`) VALUES (2, '张三', '技能2', '2023-02-28 02:02:02');
INSERT INTO  `t_user`(`id`, `name`, `action`, `create_time`) VALUES (3, '李四', '技能1', '2023-02-28 01:02:01');
INSERT INTO `t_user`(`id`, `name`, `action`, `create_time`) VALUES (4, '李四', '技能3', '2023-02-28 02:02:03');

基于id自增

当id是自增时

select * from t_user where id  in(select max(id) from t_user GROUP BY `name`);

基于createTime

SELECTt.id,t.name,t.create_time 
FROM
t_user t
INNER JOIN  ( SELECT name, max(create_time) AS create_time FROM t_user GROUP BY `name`) t2 ON t.name= t2.name
and t.create_time = t2.create_time;

对name字段分组后,得到name + max(create_time),利用关联查询,关联原表与子表,利用name 、create_time两个条件锁定记录。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部