MySQL根据某一个或者多个字段查找重复数据,删除重复数据

MySQL根据某一个或者多个字段查找重复数据,删除重复数据

一、根据projectNumber和deviceNumber字段找到重复记录


SELECT * from (SELECT *, CONCAT(projectNumber,deviceNumber) as nameAndCode from em_camerainfo) t WHERE t.nameAndCode in 
(
    SELECT nameAndCode from (SELECT CONCAT(projectNumber,deviceNumber) as nameAndCode from em_camerainfo) tt GROUP BY nameAndCode HAVING count(nameAndCode) > 1
)

2、删除重复记录,只保留id字段值最大的记录

DELETE from em_camerainfo WHERE id not in 
(
    SELECT maxid from (SELECT MAX(id) as maxid, CONCAT(projectNumber,deviceNumber) as nameAndCode from em_camerainfo GROUP BY nameAndCode) t
)


回复列表



回复操作

正在加载验证码......

请先拖动验证码到相应位置

发布时间:2018-05-25 17:23:31

修改时间:2018-06-21 11:41:44

查看次数:567

评论次数:2