mysql按名称分组取最新数据

更新时间:02-01 教程 由 暮夏 分享

MySQL 是一种流行的关系型数据库管理系统。在实际开发中,经常需要按名称分组取最新数据,以满足业务需求。下面我们介绍如何实现这一功能。

首先,假设我们有一张商品表,其中包含三个字段:id、name、price,用于存储不同商品的信息。我们需要按名称分组取最新价格。

CREATE TABLE `goods` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(50) NOT NULL,`price` decimal(10,2) NOT NULL,`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

接下来,我们可以使用以下 SQL 语句实现按名称分组取最新价格的功能:

SELECT g1.`id`, g1.`name`, g1.`price`, g1.`create_time`FROM `goods` AS g1LEFT JOIN `goods` AS g2 ON g1.`name` = g2.`name` AND g1.`create_time`< g2.`create_time`WHERE g2.`name` IS NULL;

上述 SQL 语句使用自连接,将商品表连接两次。首先将表 g1 根据名称分组,然后使用 left join 关联表 g2,通过比较两个表中的创建时间,找到每组名称中最新的记录。最后通过 where 条件筛选出最新的记录。

总之,按名称分组取最新数据是 MySQL 中常见的需求之一,可以通过 SQL 语句和自连接实现。以上就是实现步骤,希望对大家有所帮助。

声明:关于《mysql按名称分组取最新数据》以上内容仅供参考,若您的权利被侵害,请联系13825271@qq.com
本文网址:http://www.25820.com/tutorial/14_2256889.html