mysql删除重复数据

Mysql 查询重复数据:

1.单条件查询:

SELECT id,model_id,reason FROM score WHERE type=1 GROUP BY user_id HAVING COUNT(*) > 1;

2.多条件查询:

SELECT id FROM score a WHERE 
( a.user_id, a.reason, a.model_id ) IN ( SELECT user_id, reason, model_id FROM score GROUP BY user_id, reason, model_id HAVING count(*) > 1 ) 

3.删除重复数据,只保留最小ID的数据:(多条件)

DELETE FROM score WHERE id IN (
SELECT z.id FROM (
SELECT
    id
FROM
    score a 
WHERE
    ( a.user_id, a.reason, a.model_id ) IN ( SELECT user_id, reason, model_id FROM score GROUP BY user_id, reason, model_id HAVING count(*) > 1 ) 
    AND id NOT IN (
    SELECT
        min( id ) 
    FROM
        score 
    GROUP BY
 user_id, reason, model_id
HAVING
    count(*)> 1)
)z
)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。