mysql删除掉重复项


用SQL语句,删除掉重复项只保留一条

在几十万条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢

## 过滤重复数据
如果你需要读取不重复的数据可以在 SELECT 语句中使用 DISTINCT 关键字来过滤重复数据。

mysql> SELECT DISTINCT last_name, first_name FROM t_cutormer;

查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断

mysql> SELECT last_name, first_name FROM t_cutormer GROUP BY (last_name, first_name);


## 删除重复数据 
删除前最好备份下数据。
如果你想删除数据表中的重复数据,你可以使用以下的SQL语句:

mysql> CREATE TABLE tmp SELECT last_name, first_name, sex FROM t_cutormer  GROUP BY (last_name, first_name, sex);
mysql> DROP TABLE t_cutormer;
mysql> ALTER TABLE tmp RENAME TO t_cutormer;

另外一种方法:

delete from t_cutormer where
last_name, first_name, sex in (select last_name, first_name, sex from ( select last_name, first_name, sex from t_cutormer group by last_name, first_name, sex having count(last_name, first_name, sex)>1) a)
and id not in ( select min(id) from (select min(id) as id from t_cutormer group by last_name, first_name, sex having count(last_name, first_name, sex)>1 ) b)

## 统计重复数据

以下我们将统计表中 first_name 和 last_name的重复记录数:

mysql> SELECT COUNT(*) as repetitions, last_name, first_name FROM t_cutormer GROUP BY last_name, first_name
HAVING repetitions > 1;

赞(0) 打赏
特别声明:除特殊标注,本站文章均为原创,遵循CC BY-NC 3.0,转载请注明出处。三伏磨 » mysql删除掉重复项

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏