• MySql数据库去重


    shoes表结构

     在此表中,shoes_name可能有重复,本篇博客记录如何去除重复数据。

    1.首先要知道哪些数据是重复的, 可用group by 聚集函数找到:

    SELECT shoes_name,count(*) from shoes GROUP BY shoes_name having COUNT(*)>1

    注:having 一般和group连用,用来限制查到的结果,这里的意思是将shoes表按shoes_name组,count(*)计算每组的条数,hiving限制显示条数大于1的结果,即有重复的数据。

      

    2.根据第一步中获得的shoes_name来获得所有重复的数据

    SELECT * from shoes WHERE shoes_name IN(
        SELECT * from (
            SELECT shoes_name from shoes GROUP BY shoes_name having COUNT(*)>1) t1
        )

    3.因为删除时我们要保留id最小的数据行,所以我们要查找最小的id。

    SELECT id from shoes WHERE id in (
        SELECT * from (
            select MIN(id) from shoes GROUP BY shoes_name having COUNT(*)>1
        )t2
    )

    4.删除这些重复数据,只保留最小的table_id

    DELETE from shoes where shoes_name IN(
        SELECT * from(
            SELECT shoes_name FROM shoes GROUP BY shoes_name having COUNT(*)>1
        )t1
    )
    AND id not IN(
        SELECT * from (
            select MIN(id) from shoes GROUP BY shoes_name having COUNT(*)>1
        )t2
    )
  • 相关阅读:
    使用Fiddler抓包(手机端app)
    IE浏览器跳转url正常,谷歌浏览器跳转报403状态
    书签
    工作记录
    MySQL索引、锁和优化
    Pytorch-张量的创建与使用方法
    网络请求
    数据挖掘的五大流程
    uni开启下拉刷新
    uni-app中的tabBar配置
  • 原文地址:https://www.cnblogs.com/qilin20/p/12335742.html
Copyright © 2020-2023  润新知