帕秋莉_诺蕾姬 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条)

报告相同问题?

悬赏问题

  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试,帮帮忙吧
  • ¥15 #MATLAB仿真#车辆换道路径规划