SQL语句 去重!

图片描述

上图是我的mysql结构和数据,email栏里面很多重复,我要如何删除掉多余重复的,只留下唯一的就行。这个表我没有设置主键。
初学mysql,试了好几个语句都不行。
谢谢。

阅读 3.3k
3 个回答

没办法用DELETE来删的,只能重新构建一个表,从原表中SELECT出来,可以用DISTINCT,也可以用GROUP BY

select distinct(email) ,*from xxxx

distinct(email)要写第一列
但是有有问题的,同行合并的其他数据,会不确定取哪行的

删除重复数据

如果你想删除数据表中的重复数据,你可以使用以下的SQL语句:

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

当然你也可以在数据表中添加 INDEX(索引)PRIMAY KEY(主键)这种简单的方法来删除表中的重复记录。方法如下:

mysql> ALTER IGNORE TABLE person_tbl
    -> ADD PRIMARY KEY (last_name, first_name);
    

MySQL 处理重复数据 - MySQL 教程

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题