Mysql之删除重复记录

在编写功能后进行测试时,经常会向数据库插入多条重复记录,自己一条条手动删除会很麻烦,那么如何删除重复记录呢?
以下从两个方面展开:

  • id不同,其他字段全部重复
  • 无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;

后续处理方式同上一节

猜你喜欢

转载自blog.csdn.net/huhui806/article/details/88112502
今日推荐