zoukankan      html  css  js  c++  java
  • mysql删除重复数据

    有一张学生表,有姓名和性别(0:女,1:男),假如我们想删除姓名和性别都相同的数据,这里介绍2中方法

    首先看一下数据表

    编号 姓名 性别
    1  王璐 0
    2  李萌 0
    3  张帅  1 
    4   李萌   0 
    5  张帅  1 
    6   刘涛   1 

    NO.1

    保留id较小的数据

    DELETE t1 FROM student t1, student t2
    WHERE t1.name = t2.name AND t1.sex = t2.sex AND t1.id > t2.id

    保留id较大的数据

    DELETE t1 FROM student t1, student t2
    WHERE t1.name = t2.name AND t1.sex = t2.sex AND t1.id < t2.id

    注意最后的t1.id > t2.id不要忘记,否则会删除所有的数据,操作之前一定要先备份好数据

    NO.2

    INSERT INTO student_tmp(name, sex)
    SELECT DISTINCT name, sex FROM student

    总结

    两种方法优缺点:

    方法二所需时间更短,但是方法二当主键为uuid时,需要处理一下,可将把主键设置为int自增,然后执行下面的sql就可以了。

    UPDATE student_tmp SET id = uuid()

    参考:

    https://stackoverflow.com/questions/4685173/delete-all-duplicate-rows-except-for-one-in-mysql

  • 相关阅读:
    VUE 入门基础(2)
    VUE 入门基础(1)
    常用正则表达式
    git 常用命令
    JavaScript 常用算法
    SVG 使用
    移动前端头部标签(HTML5 meta)
    开发常用小demo 整理
    Reactjs 入门基础(三)
    Reactjs 入门基础(二)
  • 原文地址:https://www.cnblogs.com/whyly/p/9772884.html
Copyright © 2011-2022 走看看