去除mysql表中的重复数据,只保留最早的(最晚的也可以哦~~)

原创 2016年08月30日 16:31:12

今天整干着活,就有人找我给下个SQL,说是因为乱插数据导致有一个表里的数据出现啦重复,要去掉重复数据只保留一条,于是开始干活啦,

重复的字段是info_id

第一次写啦个这么SQL

delete from auth 
where id not in (select min(id) from auth b GROUP BY b.info_id )

[Err] 1093 - You can’t specify target table ‘wms_inve_transa_auth’ for update in FROM clause

???

话说要是在ORACLE里面这东西应该是不会报错(我忘记啦啊,得有1年多不用oracle啦,有兴趣的童鞋自己去试试,可以告诉我答案,就是不知道能不能评论)啊!!!

好吧我想啦想,要么做个临时表?方法很好,就是比较蠢。。

那么试试隐藏条件中的查询?

DELETE
FROM
    auth
WHERE
    id NOT IN (
        SELECT
            minid
        FROM
            (
                SELECT
                    min(c.id) AS minid
                FROM
                    auth c
                GROUP BY
                    c.info_id
            ) b
    )

好的~ 成功啦

版权声明:本文为博主原创文章,未经博主允许不得转载。

mysql去除重复数据,只保留一条。

之前写过的爬虫里面,因为种种原因出现了一些重复的数据需要删除掉。然后发现mysql并没有直接的去重功能,要自己写。 查过许多博客之后发现可以这么写。 删除ppeople 重复的数据,然后重复数据中...
  • meishenghang1148
  • meishenghang1148
  • 2017年12月07日 14:48
  • 156

mysql删除无主键表中重复记录(只保留一条记录)

考虑多条语句变通的办法mysql> select * from x_user; +------+---------+-------------+ | id | name | mobile ...
  • feinifi
  • feinifi
  • 2016年08月22日 15:50
  • 1581

MySQL中删除重复数据只保留一条

用SQL语句,删除掉重复项只保留一条在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢 1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 SELECT...
  • u014723529
  • u014723529
  • 2016年04月22日 11:27
  • 46591

解决mysql数据重复问题-只保留一条数据

1.sql语句,原理使用临时表法,效率比较低 delete FROM `source` WHERE is_deleted=0 AND (group_id,group_ind...
  • lv836735240
  • lv836735240
  • 2016年10月28日 10:23
  • 1539

MySQL删除单列重复或多列同时重复值并保留一条

mysql删除重复字段并保留一条
  • carry9148
  • carry9148
  • 2016年08月19日 17:15
  • 1525

MySQL删除没有主键的表中的重复记录,只保留一条记录

如果在设计表时没有指定主键, 导入数据时可能出现重复导入, 导致一个表中出现多条完全相同的多条记录。 以下是解决这个问题的思路: 使用distinct语句筛选出不重复的记录存入临时表tmp; c...
  • qq_20477309
  • qq_20477309
  • 2017年10月12日 16:02
  • 281

数据库SQL实战-查找最晚入职员工

1.题目描述查找最晚入职员工的所有信息 create table employee( emp_no int(11) not null, birth_date date not null, fi...
  • u012495483
  • u012495483
  • 2017年07月09日 10:49
  • 327

mysql查询表里的重复数据方法和删除重复数据

mysql查询表里的重复数据方法: 1 2 3 4 INSERT INTO hk_test(username, passwd) VAL...
  • a12345555555
  • a12345555555
  • 2017年05月27日 15:38
  • 442

mysql删除重复数据只保留id最大一条记录

mysql删除重复数据只保留id最大一条记录
  • u013350170
  • u013350170
  • 2017年04月20日 10:17
  • 4065

oracle 查询重复数据并且删除, 只保留一条数据

数据库操作中,经常会因为导数据造成数据重复,需要进行数据清理,去掉冗余的数据,只保留正确的数据 一:重复数据根据单个字段进行判断 1、首先,查询表中多余的数据,由关键字段(name)来查询。 sel...
  • u010069853
  • u010069853
  • 2016年12月08日 14:38
  • 11830
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:去除mysql表中的重复数据,只保留最早的(最晚的也可以哦~~)
举报原因:
原因补充:

(最多只允许输入30个字)