删除重复数据

简介: 删除重复数据

删除重复数据

使用DISTINCT关键字和UNION操作符

SELECT DISTINCT * FROM (  

 SELECT column_name1, column_name2, ... FROM table_name  

 UNION  

 SELECT column_name1, column_name2, ... FROM table_name  

) AS tmp;

这个方法会将表中的所有行复制到临时表中,并使用DISTINCT关键字删除重复的行。


使用GROUP BY和HAVING子句

DELETE table_name  

FROM table_name  

WHERE column_name IN (  

 SELECT column_name  

 FROM table_name  

 GROUP BY column_name  

 HAVING COUNT(*) > 1  

);

这个方法将使用子查询查找具有重复值的列,并在主表中删除这些行。


使用NOT IN或LEFT JOIN

DELETE table_name  

FROM table_name  

WHERE id NOT IN (  

 SELECT MIN(id)  

 FROM table_name  

 GROUP BY column_name  

);

或者使用左连接


DELETE t1  

FROM table_name t1  

LEFT JOIN (  

 SELECT MIN(id) AS id  

 FROM table_name  

 GROUP BY column_name  

) t2 ON t1.id = t2.id  

WHERE t2.id IS NULL;

这两种方法都会从表中删除重复值,但不会删除包含重复值的列中的所有行。而是只删除重复值中的一行。

相关文章
|
6月前
|
数据采集 SQL 监控
如何分析重复数据?
【4月更文挑战第2天】如何分析重复数据?
74 2
|
11月前
|
SQL 索引
加唯一索引时候发现已有重复数据删除
加唯一索引时候发现已有重复数据删除
43 1
|
SQL 数据可视化 关系型数据库
|
SQL 关系型数据库 MySQL
MySQL 查询重复数据,删除重复数据保留id最小的一条作为唯一数据
MySQL 查询重复数据,删除重复数据保留id最小的一条作为唯一数据
308 0
MySQL 查询重复数据,删除重复数据保留id最小的一条作为唯一数据
|
SQL 关系型数据库 MySQL
MYSQL 查找单个字段或者多个字段重复数据,清除重复数据
MYSQL 查找单个字段或者多个字段重复数据,清除重复数据
1502 0
MYSQL 查找单个字段或者多个字段重复数据,清除重复数据
插入、更新、删除表中的数据
插入、更新、删除表中的数据 笔记 (文中的姓名、电话等为随机编写的,如有冒犯,请多多包涵) >需求1 向科目表中添加数据,如表1 科目编号 科目名 课时数 年级编号 1 Logic Java 220 1 2 HTML 160 1 3 Java OOP 230 2 第一步,创建科目表subject,create table `subject`(.
1574 0
|
存储 数据库 索引
快速删除数据库中所有表中的数据
原文:快速删除数据库中所有表中的数据 select 'truncate table ' + Name + ';' from sysobjects where xtype='U' order by name asc; 该条语句执行之后会将数据库中所有的表都查询出来,复制出来之后执行truncate语句即可 sysobjects 在数据库内创建的每个对象(约束、默认值、日志、规则、存储过程等)在表中占一行。
1695 0
|
Oracle 关系型数据库 数据库