mysql取分组后最新的一条数据_mysql分组后取最大时间

mysql取分组后最新的一条数据_mysql分组后取最大时间mysql取分组后最新的一条记录,下面两种方法.一种是先筛选出最大和最新的时间,在连表查询.一种是先排序,然后在次分组查询(默认第一条),就是最新的一条数据了#select*fromt_assistant_articleasa,(selectmax(base_id)asbase_id,max(create_time)ascreate_timefromt_assista

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

mysql取分组后最新的一条记录,下面两种方法.

一种是先筛选 出最大和最新的时间,在连表查询.

一种是先排序,然后在次分组查询(默认第一条),就是最新的一条数据了(此条错误,分组mysql官方文档说明 是随机选择分组的一条,所以这么操作是不确定的),一般时间和主键id是正向关系,比如id大的插入时间就会比较大,我们可以以id为准来查询

方式一:

select * from t_assistant_article as a, 
(select max(base_id) as base_id, max(create_time) as create_time from t_assistant_article as b group by base_id ) as b
where a.base_id=b.base_id and a.create_time = b.create_time

Jetbrains全家桶1年46,售后保障稳定

方式二:

select * from t_assistant_article where id  in(select max(id) from t_assistant_article GROUP BY base_id)

下面是测试sql, 感谢评论区的留言,2013年写的,今天登录了网站发现了这个问题,抱歉!

CREATE TABLE `t_assistant_article` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `base_id` int(10) DEFAULT '0',
  `name` varchar(255) DEFAULT NULL,
  `create_time` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;

INSERT INTO `test`.`t_assistant_article` (`id`, `base_id`, `name`, `create_time`) VALUES (1, 1, '11', 1532071461);
INSERT INTO `test`.`t_assistant_article` (`id`, `base_id`, `name`, `create_time`) VALUES (2, 1, '22', 1532071462);
INSERT INTO `test`.`t_assistant_article` (`id`, `base_id`, `name`, `create_time`) VALUES (3, 2, '33', 1532071463);
INSERT INTO `test`.`t_assistant_article` (`id`, `base_id`, `name`, `create_time`) VALUES (4, 2, '44', 1532071464);
INSERT INTO `test`.`t_assistant_article` (`id`, `base_id`, `name`, `create_time`) VALUES (5, 3, '55', 1532071465);
INSERT INTO `test`.`t_assistant_article` (`id`, `base_id`, `name`, `create_time`) VALUES (6, 3, '66', 1532071466);
INSERT INTO `test`.`t_assistant_article` (`id`, `base_id`, `name`, `create_time`) VALUES (7, 4, '77', 1532071467);
INSERT INTO `test`.`t_assistant_article` (`id`, `base_id`, `name`, `create_time`) VALUES (8, 4, '88', 1532071468);

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/226878.html原文链接:https://javaforall.net

(0)
上一篇 2025年6月22日 下午7:43
下一篇 2025年6月22日 下午8:15


相关推荐

  • 面试题springboot启动流程_Spring boot面试

    面试题springboot启动流程_Spring boot面试SpringBoot启动原理1、什么是SpringBoot2、SpringBoot启动原理3、三个关键注解解析3.1、@SpringBootConfiguration注解解析1、什么是SpringBootSpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,SpringBoot致力于在蓬勃发展的快速应用开发领域(RapidApplication

    2025年9月28日
    3
  • 数据库numeric类型

    数据库numeric类型今天发现个问题 写 sql 前做条数据发现做不了 每个字段随便插了个 1 提交后弹出 数字字段溢出 的错误 最终把问题定位到一个字段的数值类型是 numeric 1 1 上 百度了一下用法 numeric a b a 代表整数位加小数位的总位数 不算小数点 b 代表小数位的位数 知道用法之后插 0 1 就好了

    2026年3月19日
    2
  • 如何使用免费控件将Word表格中的数据导入到Excel中

    如何使用免费控件将Word表格中的数据导入到Excel中

    2021年9月11日
    48
  • 基于51单片机的八路抢答器设计开题报告_8路抢答器设计51单片机

    基于51单片机的八路抢答器设计开题报告_8路抢答器设计51单片机随着科学技术的发展和普及,各种各样的竞赛越来越多,其中抢答器的作用也越来越重要。本文设计出以STC89C52RC单片机为核心的八路抢答器。所需元器件如下:…

    2022年10月20日
    4
  • 病毒代码「建议收藏」

    病毒代码「建议收藏」【病毒小程序】关于病毒的代码可以用来运行一下,你的电脑可能会发生……但大家都知道,病毒是恐怖的,你可以做一些有趣的代码.关机代码#includeusingnamespacestd;

    2022年7月1日
    46
  • java futuretask 用法_FutureTask使用

    java futuretask 用法_FutureTask使用直接上实例 packagegaobi test FutureTaskTe importjava util concurrent Callable importjava util concurrent ExecutorServ importjava util concurrent Executors importjava util concurrent FutureTas

    2026年3月18日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号