帕秋莉_诺蕾姬 2020-05-17 22:37 采纳率: 50%
浏览 328
已采纳

如何找到以及清除一个数据表中,两个列中数值相同的数据行

比如说一个数据库有id,name,score三列,其中存在name与score均相同的两行或多行。如何清除name与score都相同的重复行呢

  • id name score
  • 1 homura 100
  • 2 madoka 100
  • 3 sayaka 80
  • 4 sayaka 80
  • 5 homura 99 比如这个例子,需要查找到name与score都相同的行(sayaka 80)并且清除 怎么写sql语句才能够达到找到这些的效果并清除掉重复项仅保留一个啊(查找的语句和清除的语句希望分别给出的说,分可以加- -)
  • 写回答

5条回答 默认 最新

  • 关注

    先找出相同行的id,sql如下:

    SELECT
        DISTINCT(t_s.id)
    FROM
        `t_score` t_s
        INNER JOIN ( SELECT * FROM t_score ) AS ts ON t_s.NAME = ts.NAME 
        AND t_s.score = ts.score 
        AND t_s.id != ts.id
        order by t_s.id asc;
    
    

    如果删除的话,在这个基础上,再加一层删除操作:

    DELETE 
    FROM
        t_score 
    WHERE
        id IN (
        SELECT
            a.id 
        FROM
            (
            SELECT DISTINCT
                ( t_s.id ) AS id 
            FROM
                `t_score` t_s
                INNER JOIN ( SELECT * FROM t_score ) AS ts ON t_s.NAME = ts.NAME 
                AND t_s.score = ts.score 
                AND t_s.id != ts.id 
            ORDER BY
                t_s.id ASC 
            ) a 
        );
    

    亲测有效,希望可以帮助你!(不要忘了给分哦!)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥30 python代码,帮调试,帮帮忙吧
  • ¥15 #MATLAB仿真#车辆换道路径规划