Mysql删除重复记录
在编写功能后进行测试时,经常会向数据库插入多条重复记录,自己一条条手动删除会很麻烦,那么如何删除重复记录呢?
以下从两个方面展开:
- id不同,其他字段全部重复
- 无id字段,所有字段全部重复
id不同,其他字段全部重复
表的数据如下图:
delete from test
where id not in (
select tmp.mins from
(
select
min(id) as mins
from test
group by name, address
)tmp
)
通过对重复字段进行分组,取min(id),将test表中id不在这个id集合中的其他记录全部删除,达到去重效果(取max(id)亦可)
无id字段,所有字段全部重复
表的数据如下图:
mysql每行记录没有隐藏的rowid属性,所以删除起来有难度啊,只能自己手动先将行号加上喽
SELECT @i:=@i+1 AS id, name, tile FROM test,(SELECT @i:=0) rowNo;
后续处理方式同上一节