zoukankan      html  css  js  c++  java
  • mysql 查询及 删除表中重复数据

    CREATE TABLE `test` (
    	`id` INT(20) NOT NULL AUTO_INCREMENT,
    	`name` VARCHAR(20) NULL DEFAULT NULL,
    	`age` INT(5) NULL DEFAULT NULL,
    	PRIMARY KEY (`id`)
    )
    COLLATE='utf8_general_ci'
    ENGINE=InnoDB
    
    

      

    查询出所有重复的记录 ,删除所有 select a.* 换成delete 

    select a.* 
    from test a 
    join (select name,count(*) from test group by name having count(*)> 1 ) b 
    on a.name = b.name;
    

      

    查询不重复的记录,和重复记录里最后插入的记录 

    select * from test a where a.id = (select max(id) from test b where a.name = b.name);
    

     

    查询不重复的记录。和重复记录里,最先插入的记录 

    select * from test a where a.id = (select min(id) from test b where a.name = b.name);
    

      

    查询出重复记录里,第一条重复记录以外的所有重复记录 删除的话select * 换成delete

    select * from test a where a.id != (select min(id) from test b where a.name = b.name);
    

      

    查询出重复记录里,最后一条重复记录以外所有重复的记录 ,删除的话select * 换成delete

    select * from test a where a.id != (select max(id) from test b where a.name = b.name);
    

      

  • 相关阅读:
    windows中抓取hash小结(上)
    内网横向移动常见方法
    常见默认服务端口整理
    Kerberos认证流程简述
    SQL注入之MySQL报错注入整理
    域内常用命令整理
    一个极其朴素的目录扫描Python脚本
    5. 7冲刺记录
    5. 6冲刺记录
    梦断代码阅读笔记
  • 原文地址:https://www.cnblogs.com/or2-/p/3594945.html
Copyright © 2011-2022 走看看