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

輸出:

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM