zoukankan      html  css  js  c++  java
  • MySQL用GROUP BY分组取最新一条数据

    因为group by后取的一条数据默认是按主键id排序后的第一条,
    而且mysql查询语句是先执行group by再执行order by的。
    所以无法直接取 group by 后 创建时间最新的数据。

    通过max()取最大id。

    操作测试:

    1、数据准备

    CREATE TABLE `stu2` (
      `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
      `name` char(16) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
    
    -- ----------------------------
    -- Records of stu2
    -- ----------------------------
    INSERT INTO `stu2` VALUES ('1', '李四');
    INSERT INTO `stu2` VALUES ('2', '王五23');
    INSERT INTO `stu2` VALUES ('3', '王五23');
    INSERT INTO `stu2` VALUES ('4', '王五23');
    INSERT INTO `stu2` VALUES ('5', '李四');
    INSERT INTO `stu2` VALUES ('6', '李四');
    

      

    2、查询:

    select max(id),name from stu2 group by name
    

    输出:

     +排序后:

    select max(id) id,name from stu2 group by name ORDER BY id
    

    输出:

     

  • 相关阅读:
    104每日博客
    924每日博客
    921每日博客
    928每日博客
    929每日博客
    930每日博客
    927每日博客
    大志非才不就,大才非学不成—我的博文资源汇总
    vue 项目搭建
    Vant 使用记录
  • 原文地址:https://www.cnblogs.com/andy9468/p/14978504.html
Copyright © 2011-2022 走看看