当一个网站的数据太多的时候,或者我们平时采集数据的时候,很容易产生重复数据记录,重复数据记录对网站没有任何意义,这个时候我们需要删除重复的数据,只保留一条即可。下面分享sql删除重复记录的sql语句。
正确的SQL查询多字段重复记录的sql语句,下面这句sql语句,是查询药品表aa里面,药品名称、药品批号、药品规格完全一致的数据。
select p1.yaoming,p1.wenhao,p1.guige from aa p1,aa p2 where p1.id<>p2.id and p1.yaoming = p2.yaoming and p1.wenhao = p2.wenhao and p1.guige = p2.guige
上面这句经过编程之家测试,完全正确,可以查询多个字段重复的数据记录,还可以继续扩展字段4、字段5等等。
那么sql删除重复记录的方法
1.用rowid方法
2.用group by方法
1。用rowid方法
查数据:
select * from table1 a where rowid !=(select max(rowid) from table1 b where a.name1=b.name1 and a.name2=b.name2......)
删数据:
delete from table1 a where rowid !=(select max(rowid) from table1 b where a.name1=b.name1 and a.name2=b.name2......)
2.group by方法
查数据: select count(num), max(name) from student --列出重复的记录数,并列出他的name属性 group by num having count(num) >1 --按num分组后找出表中num列重复,即出现次数大于一次
删数据:
delete from student group by num having count(num) >1这样的话就把所有重复的都删除了。
create table table_new as select distinct * from table1 minux truncate table table1;
insert into table1 select * from table_new
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。