删除重复数据

文章介绍了三种在SQL中删除重复数据的方法:1)使用DISTINCT和UNION创建临时表去重;2)通过GROUPBY和HAVING子句找出并删除重复行;3)使用NOTIN或LEFTJOIN结合MIN函数保留每个重复组的一个实例。
摘要由CSDN通过智能技术生成

删除重复数据
使用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;
 这两种方法都会从表中删除重复值,但不会删除包含重复值的列中的所有行。而是只删除重复值中的一行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

火爆的后槽牙儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值