mysql数据去重取最新的一条

这篇博客讨论了一种SQL查询方法,用于根据equipment_id分类,并在每个分类中选取最新的记录。通过使用变量@equipment_id和@num,可以实现对cp_fermentation_batch表的排序和计数,从而找出每组内的第一条记录(即最新记录)。查询首先按equipment_id排序,然后通过row_id降序排列,最后筛选出num为1的记录作为每组的最新条目。
摘要由CSDN通过智能技术生成

先按照同种类型进行排序,并取id最新的一条

使用@equipment_id 和@num两个变量,第一个变量分类,第二个变量标记最新,第二,第三等等。

	SELECT *, IF (
            @equipment_id = equipment_id,
            @num :=@num + 1,
            @num := 1
        ) AS num,
        @equipment_id := cast(equipment_id  as char)
				 from cp_fermentation_batch
	 ORDER BY
        equipment_id,row_id DESC

最后再取最新的一条,即num=1的数据即可

	SELECT * from (
	SELECT *, IF (
            @equipment_id = equipment_id,
            @num :=@num + 1,
            @num := 1
        ) AS num,
        @equipment_id := cast(equipment_id  as char)
				 from cp_fermentation_batch
	 ORDER BY
        equipment_id,row_id DESC
	) tab where num =1

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值