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