MySQL单列查询和去除重复数据行

  1. 查询重复数据行
mysql> SELECT * FROM tb_virus_person WHERE report_url 
IN (SELECT report_url FROM tb_virus_person 
GROUP BY report_url HAVING COUNT(report_url) > 1) 
  1. 去除重复行,保留virus_id最小的数据行
mysql> DELETE
FROM tb_virus_person
WHERE report_url IN(SELECT
               report_url 
             FROM (SELECT
                     report_url 
                   FROM tb_virus_person
                   GROUP BY report_url 
                   HAVING COUNT(report_url ) > 1) a)
    AND virus_id NOT IN(SELECT
                    *
                  FROM (SELECT
                          MIN(virus_id)
                        FROM tb_virus_person
                        GROUP BY report_url 
                        HAVING COUNT(report_url ) > 1) b)

猜你喜欢

转载自blog.csdn.net/u010257584/article/details/109090233