如有任何问题请联系博主,还请诸位大佬多多关照!!!
       添加博主

软件源项目数据重复,教大家如何用sql语句进行去重

文章描述

1、很多人在搬运软件的时候,会忽视自己项目是否有这些软件,就直接一键搬运了,导致自己的软件项目好多都是重复的,以下教大家如何去重。

教程描述【对于无代码基础的可能相对理解比较有难度】

一、查询重复的数据有哪些

1. SELECT c1.*

  • 这表示选择表 fa_category(别名为 c1)中的所有列。* 是一个通配符,表示选择所有列。

2. FROM fa_category c1

  • 这表示查询的主表是 fa_category,并给它起了一个别名 c1。别名在查询中用于简化表名的引用。

3. JOIN fa_category c2

  • 这表示将 fa_category 表自身连接起来。JOIN 是一种表连接操作,用于将两个表中的数据根据某些条件组合起来。在这里,fa_category 表被连接到自身,c2fa_category 的另一个别名。

4. ON c1.name = c2.name AND c1.nickname = c2.nickname AND c1.id <> c2.id

  • 这是连接条件,用于指定如何将 c1c2 的记录进行匹配:
    • c1.name = c2.name:要求 c1c2name 字段值相同。
    • c1.nickname = c2.nickname:要求 c1c2nickname 字段值相同。
    • c1.id <> c2.id:要求 c1c2id 字段值不同,以确保不会将同一条记录与自身进行比较。

二、查询要被删除的数据,避免误删

这条SQL语句的作用是从fa_category表中找出那些namenickname字段值相同,但id不同,且weigh字段值较小的记录。

  • JOIN fa_category c2:把表自身和自身连接起来,相当于把表复制了一份,分别叫c1c2,方便比较。
  • ON c1.name = c2.name AND c1.nickname = c2.nickname:找出c1c2namenickname都相同的记录。
  • AND c1.id <> c2.id:确保比较的是不同的记录,避免自己和自己比。
  • AND c1.weigh < c2.weigh:在满足前面条件的记录中,只选出c1weigh值小于c2weigh值的那些记录。

三、最后删除重复的数据【删除权重数值较小的数据】

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容