mysql语句删除重复数据,保留一条;查询所有重复…

2018-06-17 23:27:58来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

//显示重复的所有条

  SELECT * FROM 表名
  WHERE (字段1,字段2,...)
  IN (SELECT 字段1,字段2,...FROM 表名 GROUP BY 字段1,字段2,... HAVING COUNT(*)>1)

 

//只显示重复中的一条

  SELECT * FROM 表名 GROUP BY CONCAT(字段1,字段2,...) HAVING COUNT(*)>1

 

//删除重复数据(保留ID最小的一条)
  DELETE FROM 表名
  WHERE (字段1,字段2,...)
  IN (SELECT 字段1,字段2,... FROM
    (SELECT 字段1,字段2,... FROM 表名 GROUP BY 字段1,字段2,... HAVING COUNT(*)>1) AS b

    )
  AND Id NOT IN (SELECT id AS id FROM
    (SELECT MIN(Id) AS id FROM 表名 GROUP BY 字段1,字段2,... HAVING COUNT(*)>1) AS c

    )

注意:在删除重复数据语句中加深的部分,from后面需要重新套一层查询语句,负责报错。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:【mysql】 操作 收集持续更新

下一篇:【Mysql】可视化工具