irpas技术客

mysql查询表中重复记录_胜利女神yyds_mysql 查询重复数据

网络投稿 6816

mysql查询表中某个字段值重复的记录,

也就是说,该字段值出现的个数是>=2,所以可以对该字段进行分组,然后对字段count计数,再筛选出>=2的count的值即可,具体实现如下:

select * from tb where 字段 in(

select 字段 from tb group by 字段 having count(字段)>=2);

查询多个字段值重复的记录:和上面类似,只不过分组和查询条件变成了多个字段:

select * from tb where (datetime,user) in (select datetime,user from tb group by datetime,user having count(*)>=2);

过滤掉重复字段(完全重复的记录):

select distinct * from tb;

过滤掉重复字段(某些重复的字段值)

select * from tb where id in(select max(id) from tb group by 字段1,字段2)

删除有重复值的记录(针对单个字段的重复值),只保留id最大的那个:

delete from tb_test where id not in (select id from (select max(id) id from tb_test group by datetime) t);

删除有重复值的记录(多个字段的重复值),只保留id最大的那个:

在group by 后面放入多个字段,逗号隔开

值得注意的是,要将查询到的Max值存入一个临时表,否则报错:You can't specify target table for update in FROM clause


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #MySQL #查询重复数据 #from #TB #where #字段