精华内容
下载资源
问答
  • 今天群内有群友提出了一个问题,就是MySql中删除重复数据的问题,然后回答了一下,发现正好接触到了之前可能没关注的一点儿小知识,在此做下简要记录(哦对,昨天晚上在试用腾讯云数据库的时候还遇到一个问题,就是...

    今天群内有群友提出了一个问题,就是MySql中删除重复数据的问题,然后回答了一下,发现正好接触到了之前可能没关注的一点儿小知识,在此做下简要记录(哦对,昨天晚上在试用腾讯云数据库的时候还遇到一个问题,就是腾讯云数据库的Mysql对大小写是敏感的)。

    OK,接下来我们进入正题,首先我按照群友的数据结构创建了一张表,填充了一部分数据,结构如下图所示:

    那么我们首先来确定我们删除数据的时候的所需条件,首先找到所有重复的数据记录,使用如下sql语句进行

    select * from a group by cardno having count(cardno) > 1

    查询结果如下:

    9c48679183a6cee1e4de5d8c53c78d26.png

    查询出来的是所有重复数据的第一条记录,但是这个是我们需要保留的,所以条件变成了,(改用如下的sql语句查询,根据cardno查询)重复数据中不包含本条记录的结果删除:

    下午写的时候犯了个错误,这里已经更正

    查询语句如下:

    select id,cardno from a where cardno in (select cardno from a group by cardno having count(cardno)>1)

    and id not in(select min(id) from a group by cardno having count(cardno)>1)

    8e8a102fee9b838e9cde333782b03df2.png

    这些记录是我们需要删除的,OK,接下来我们就直接删除掉这些数据就OK了,我们根据id主键来删除,sql语句如下:

    delete from a where id in(select id from a where cardno in (select cardno from a group by cardno having count(cardno)>1)

    and id not in(select min(id) from a group by cardno having count(cardno)>1))

    执行结果如下:

    78c954fa563242d7d73cf3bb78ecbf04.png

    Oops!报错了,这条提示信息说的是,诶同学,在MySql里你不能先查询了然后再删除诶!哦,好吧,这个就只能等官方升级支持这个新特性了,但是我们现在就要解决这个棘手的问题啊,肿么办?我们用临时表来解决,然后我们的删除语句变成了,这个样子:

    delete from a where id in (select id from (select id from a where cardno in (select cardno from a group by cardno having count(cardno)>1)

    and id not in(select min(id) from a group by cardno having count(cardno)>1)) as tmpresult)

    执行,OK,可以看到我们上面查询的出来要删除的6条重复数据已经被清理掉了,结果如下:

    3c085e2bc55926ed4a23ac948fe542dd.png

    OK,那么群里的那位朋友的问题是,他只想删除固定的卡号的话该怎么办呢?

    这个就相当于附加的条件筛选了,我们直接在临时表的查询里附加条件:(注:红色加粗字体是附加条件)

    delete from a where id in (select id from (select id from a where cardno in (select cardno from a group by cardno having count(cardno)>1 and cardno=333)

    and id not in(select min(id) from a group by cardno having count(cardno)>1)) as tmpresult)

    这样儿就完成了Mysql删除重复数据的需求。

    展开全文
  • sqlite查询数据库去除重复记录

    万次阅读 2016-06-08 08:52:57
    sqlite查询数据库去除重复记录: select *, count(distinct 字段名) from 表明 where 字段名1 = '条件' group by 字段名
    sqlite查询数据库去除重复记录:
    select *, count(distinct 字段名) from 表明 where 字段名1 = '条件' group by 字段名
    展开全文
  • 数据库去除重复记录

    万次阅读 2018-05-29 17:37:34
    最近遇到一个面试题,所以跟大家分享下: 如何删除数据库重复的记录 一般情况下,数据库重复有以下那么三种方法: 第一种: 两条记录或者多条记录的每一个字段值完全相同,这种情况去重复最简单,用关键字...

    最近遇到一个面试题,所以跟大家分享下:

       如何删除数据库中重复的记录

      一般情况下,数据库去重复有以下那么三种方法:

          第一种:

        两条记录或者多条记录的每一个字段值完全相同,这种情况去重复最简单,用关键字distinct就可以去掉。例:

                SELECT DISTINCT * FROM TABLE

          第二种:

        两条记录之间之后只有部分字段的值是有重复的,但是表存在主键或者唯一性ID。如果是这种情况的话用DISTINCT是过滤不了的,这就要用          到主键id的唯一性特点及group by分组。例:

    SELECT * FROM TABLE WHERE ID IN (SELECT MAX(ID) FROM TABLE GROUP BY [去除重复的字段名列表,....])

         第三种:

       两条记录之间之后只有部分字段的值是有重复的,但是表不存在主键或者唯一性ID。这种情况可以使用临时表,讲数据复制到临时表并添加一        个自增长的ID,在删除重复数据之后再删除临时表。例:

    //创建临时表,并将数据写入到临时表
    SELECT IDENTITY(INT1,1) AS ID,* INTO NEWTABLE(临时表) FROM TABLE
    //查询不重复的数据
    SELECT * FROM NEWTABLE WHERE ID IN (SELECT MAX(ID) FROM NEWTABLE GROUP BY [去除重复的字段名列表,....])
    //删除临时表
    DROP TABLE NEWTABLE




    展开全文
  • 数据库去除重复数据

    2019-10-02 08:06:29
    小标记一下,数据库大量重复数据去除 下面是一个根据重复的name 移除的 create table temp select max(id) as id from table1 group by name ;//name分组 拿到最大id 保存到临时表 delete table1 where id not ...

    小标记一下,数据库大量重复数据去除

     

    下面是一个根据重复的name  移除的

    create table temp select max(id) as id  from table1 group by name ;//name分组  拿到最大id  保存到临时表

    delete table1 where id not in(select id from temp);

     

    以上仅供参考,其他的比葫芦画瓢

    转载于:https://www.cnblogs.com/bfyx/p/4638353.html

    展开全文
  • 数据库 去除重复数据

    2019-12-11 13:20:10
    DELETE FROM gx_shipin_gaoxiao_haokan WHERE 1=1 AND title in (SELECT * FROM ( (SELECT title FROM gx_shipin_gaoxiao_haokan GROUP BY title HAVING COUNT(title)>1) ) a) AND id not in (SELECT * FROM ( (S...
  • 自己动手丰衣足食, 夜谈 MySQL 数据库去除重复记录最快的方法MySQL 数据库重复插入了一些数据, 想删除保留一条, 查找了很多方案, 类似这种以及这种的初试了一下, 感觉可能达到效果, 但是速度太慢了, 几十上百条数据...
  • 数据库去除重复的数据

    千次阅读 2018-03-09 11:21:06
    一个是关于去除重复数据的(除了唯一标识符,其他都一样的数据)。(如果只是查询的过程中去掉重复数据,只需把NOT IN改为IN即可。)第二个是关于修改同一列不同行数据的问题。我遇到的是默认地址的问题,把一个设置为...
  • delete from car_mod_infos where id NOT IN ( select a.id FROM ( select MAX(b.id) as id from car_mod_infos b group by b.bh )a )
  • (一)最原始的方法:delete from test where id not in (select * from ((select min(id) from test group ...删除重复,留下id最小的数据delete from test where id not in (select * from ((select max(id) from t...
  • id,MatchName,MatchTime,master,guest,现在是因为写入数据库的时候会出现重复数据,请问一下应该怎么过滤?sql语句怎么写?![图片说明](https://img-ask.csdn.net/upload/201603/07/1457326425_115865.png)
  • 今天群内有群友提出了一个问题,就是MySql中删除重复数据的问题,然后回答了一下,发现正好接触到了之前可能没关注的一点儿小知识,在此做下简要记录(哦对,昨天晚上在试用腾讯云数据库的时候还遇到一个问题,就是...
  • 在报名表中 由于用户多次提交了,使得数据库里面 有很多重复数据 这里面 需要用 left join 关联查询 ,不用 select 子查询( 百度过 是mysql 数据库的原因,不支持 delect 后面 加 select 子查询 ) delete a from `...
  • (一)最原始的方法:delete from test where id not in (select * from ((select min(id) from test group ...删除重复,留下id最小的数据delete from test where id not in (select * from ((select max(id) from t...
  • 第一种:可以用关键字:distinct select distinct t.userid ,t.username from userinfo t ;...第二种:利用分组去除重复项 select t.userid ,t.username from userinfo t group by t.userid ,t.username ; ...
  • SELECT DISTINCT 语句用于返回唯一不同的值。...使用情况:想去除表中重复数据(每行完全相同或者某一列某几列相同) 情况1:一条数据(包含的每一列)完全重复 SELECT DISTINCT * FROM lclj 情况2...
  • 1、获取定义重复记录的字段,例如name字段; 2、获取表中唯一标识记录的字段,例如objectid字段; 3、执行下列语句: delete from table a where a.objectid not in (select max(objectid) from table b group by...
  • 今天群内有群友提出了一个问题,就是MySql中删除重复数据的问题,然后回答了一下,发现正好接触到了之前可能没关注的一点儿小知识,在此做下简要记录(哦对,昨天晚上在试用腾讯云数据库的时候还遇到一个问题,就是...
  • mysql数据库重复插入了一些数据,想删除保留一条,查找了很多方案,类似这种以及这种的 初试了一下,感觉可能达到效果,但是速度太慢了,几十上百条数据还可以,几十上百万条,mysql.exe 进程基本上就跑满cpu了,半天出不来...
  • 一条sql 数据库去除重复记录

    千次阅读 2009-04-22 05:54:00
    假如有一张users表,里面有user_id,user_name两个字段,用一条sql语句去掉数据库里的userName重复的记录.1.delete from users a where a.user_id = (select max(b.user_id) from users b where a.user_name=b.user_...
  • mysql数据库重复插入了一些数据,想删除保留一条,查找了很多方案,类似这种以及这种的初试了一下,感觉可能达到效果,但是速度太慢了,几十上百条数据还可以,几十上百万条,mysql.exe 进程基本上就跑满cpu了,半天出不来...
  • 假如有一张users表,里面有user_id,user_name两个字段,用一条sql语句去掉数据库里的userName重复的记录. 1.delete from users a where a.user_id = (select max(b.user_id) from users b where a.user_name=b.user_...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,168
精华内容 467
关键字:

数据库去除重复