mysql删除重复数据

2021年09月15日 阅读数:1
这篇文章主要向大家介绍mysql删除重复数据,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

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

首先看一下数据表sql

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

NO.1ui

保留id较小的数据spa

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

保留id较大的数据code

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不要忘记,不然会删除全部的数据,操做以前必定要先备份好数据blog

 

NO.2io

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

 

总结table

两种方法优缺点:class

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

UPDATE student_tmp SET id = uuid()

 

参考:

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