十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
MySQL 删除重复数据
专注于为中小企业提供成都网站设计、网站制作、外贸营销网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业襄阳免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了成百上千企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
有些 MySQL 数据表中可能存在重复的记录,有些情况我们允许重复数据的存在,但有时候我们也需要删除这些重复的数据。
本章节我们将为大家介绍如何防止数据表出现重复数据及如何删除数据表中的重复数据。
删除重复数据
如果你想删除数据表中的重复数据,你可以使用以下的SQL语句:
from 树懒学堂 - 一站式数据知识平台
当然你也可以在数据表中添加 INDEX(索引) 和 PRIMAY KEY(主键)这种简单的方法来删除表中的重复记录。方法如下:
你要删除重复项,最好能再设计一个字段,比如主键,一个表就一个字段,比较少见,查询比较方便,直接使用dictinct,要删除比较麻烦,所以建议再设计一个字段,就很少删除重复记录。
MySQL 过滤重复数据
有些 MySQL 数据表中可能存在重复的记录,有些情况我们允许重复数据的存在,但有时候我们也需要删除这些重复的数据。
如果你需要读取不重复的数据可以在 SELECT 语句中使用 DISTINCT 关键字来过滤重复数据。
from 树懒学堂- 一站式数据知识学习平台
你也可以使用 GROUP BY 来读取数据表中不重复的数据:
思路:提取出所有不重复的记录到一个新表,然后drop掉旧表,改新表名字即可。
-----------------------------------
呵呵,放松,
一切都会好起来的
!
假设:查询一个结果集当中,要求三个字段同时不重复,即当 字段1=A 时,字段2=B 那么其他记录中不再出现字段1=A 并且字段2=B的情况。
select *, count(distinct name) from table group by name
这个 你想去除那些重复 就直接在 distinct 后面 后group by 后面加 就可以了
假设表结构为
t1(a,b)
删除a列有重复的记录
delete from t1,(select a from t1 group by a having count(1)1) t where t1.a=t.a;
如果希望对于有重复的记录只保留其中一条而不是全部删除,则可运行下列语句,前提是数据表必须含有自增id列。语句如下:
delete from t1,(select a,max(id) as id from t1 group by a having count(1)1) t where t1.a=t.a and t1.idt.id;