精华内容
下载资源
问答
  • mysql去除重复数据

    千次阅读 2019-08-19 17:54:21
    mysql去除重复数据 在crm中,电话号码就往往就代表了一个客户,所以往往电话号码不能出现重复数据,下面就根据客户表client的phone字段去除重复数据: 查询重复数据: select phone,count(phone) as c from client ...

    mysql去除重复数据


    在crm中,电话号码就往往就代表了一个客户,所以往往电话号码不能出现重复数据,下面就根据客户表client的phone字段去除重复数据:

    • 查询重复数据:
    select phone,count(phone) as c from client group by phone having c>1;
    
    • 去除重复数据,只保留一个:
    delete from client where id not in (select * from (select id from client group by phone) b )
    
    展开全文
  • 主要介绍了MySQL 去除重复数据实例详解的相关资料,需要的朋友可以参考下
  • mysql 删除重复数据

    千次阅读 2017-11-22 16:12:28
    mysql删除重复数据 今天工作时遇到了一个问题,将mysql中一个表里面的重复数据删除掉,用了多种方法一直提示错误,在网上查了半天终于解决了。 例如:需要删除A表中uid字段重复的数据,具体操作如下: 首先查询出不...

    mysql删除重复数据

    今天工作时遇到了一个问题,将mysql中一个表里面的重复数据删除掉,用了多种方法一直提示错误,在网上查了半天终于解决了。

    例如:需要删除A表中uid字段重复的数据,具体操作如下:

    首先查询出不重复的数据: 

    select * from a group by uid;
            接下来新建一个表B,设计格式跟表A的完全一样,将查询出来的结果插入到表B中

    insert into B (select * from A  GROUP BY uid);
    然后根据A表和B表另一个字段删除A表中包含B表的数据

    delete a.* from A as a,B as b where a.id = b.id;
    这样A表中就不存在uid重复的数据了。


    在PostgreSQL中删除重复的数据很容易:

        

    DELETE
    FROM
    	A
    WHERE
    	ctid NOT IN (
    	SELECT
    		MIN (ctid)
    		FROM
    			A
    		GROUP BY
    		uid
    	);		

    参考: https://www.cnblogs.com/luyingfeng/p/5772262.html

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

    万次阅读 2018-09-17 17:12:10
    最近工作业务上遇到需要去除重复数据,所以了解了一下如何去除某属性相同的数据! 1:查询出重复数据 以用户表user为例,我们需要去除login_name重复的数据,那么我们首先需要查询一下哪些数据是重复的。 sql如下...

    最近工作业务上遇到需要去除重复数据,所以了解了一下如何去除某属性相同的数据!

    1:查询出重复数据

    以用户表user为例,我们需要去除login_name重复的数据,那么我们首先需要查询一下哪些数据是重复的。

    sql如下:

    SELECT login_name FROM user GROUP BY login_name HAVING COUNT(login_name) > 1

    这条语句根据group by 和having count(login_name) 查询出了重复数据的login_name,如果有结果集,那么证明是有重复数据的,该如何去重呢?

    2:去除重复数据

    思考一下,我们可以根据查询出重复数据的login_name,来确定需要删除的数据的条件,我们可以这样写sql来进行重复数据的删除

    DELETE
    FROM
        `user`
    WHERE
        login_name IN (
            SELECT
                login_name
            FROM
                `user`
            GROUP BY
                login_name
            HAVING
                count(login_name) > 1
        )
    AND id NOT IN (
        SELECT
            min(id) AS aa
        FROM
            `user`
        GROUP BY
            login_name
        HAVING
            count(login_name) > 1
    );

    如上所示:查询出当前重复的login_name作为删除条件,但是不能将重复的数据全部删除完,所有我们查询出了重复数据当中的其中一个id,也就是min(id)作为不被删除的条件,当然也可以用max(id);这样我们执行一下;会发现报出了如下错误:

    [Err] 1093 - You can't specify target table 'user' for update in FROM clause

    这个错误的意思是:不能在同一表中查询的数据作为同一表的更新数据!那么我们可以中转一下,将查询出来的结果映射成一个表,就可以了!

    sql 如下:

    DELETE
    FROM
        `user`
    WHERE
        login_name IN (
            SELECT
                a.login_name
            FROM
                (
                    SELECT
                        login_name
                    FROM
                        `user`
                    GROUP BY
                        login_name
                    HAVING
                        count(login_name) > 1
                ) AS a
        )
    AND id NOT IN (
        SELECT
            b.aa
        FROM
            (
                SELECT
                    min(id) AS aa
                FROM
                    `user`
                GROUP BY
                    login_name
                HAVING
                    count(login_name) > 1
            ) AS b
    );
    

    执行该语句,发现执行成功,数据已经成功去重!

    展开全文
  • mysql删除重复数据

    千次阅读 2019-08-05 09:46:13
    DELETE FROM eds_conference WHERE conf_uri IN ( SELECT conf_uri FROM ( SELECT conf_uri FROM ...
    
    DELETE
    FROM
        eds_conference
    WHERE
        conf_uri IN (
            SELECT
                conf_uri
            FROM
                (
                    SELECT
                        conf_uri
                    FROM
                        eds_conference
                    GROUP BY
                        conf_uri
                    HAVING
                        count(conf_uri) > 1
                ) a
        )
    AND id NOT IN (
        SELECT
            MIN(id)
        FROM
            (
                SELECT
                    MIN(id) AS id
                FROM
                    eds_conference
                GROUP BY
                    conf_uri
                HAVING
                    count(conf_uri) > 1
            ) b
    );
    
    展开全文
  • MySql删除重复数据

    千次阅读 2017-11-23 10:44:27
    Mysql中需要将表中某一个或多个字段值重复数据删掉,从网上查了大部分sql形式如下,执行会报错 错误提示:不能在同一个sql语句中,先select一个表,然后再update这个表,有点类似于Java中不能在普通for each...
  • Mysql删除重复数据

    2020-06-08 15:40:53
    数据表: mysql> select * from students; +---------+-----+--------+ | name | age | stu_id | +---------+-----+--------+ | lisi | 19 | 1 | | aaa | 10 | 2 | | bbb | 10 | 3 | | ccc | 19 | 4 | | ddd | 19...
  • MYSQL删除重复数据

    2014-03-14 12:40:28
    mysql 删除表中重复记录。 例子: CREATE TABLE `student` ( `id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '非业务主键', `name` VARCHAR(30) NULL DEFAULT NULL, `age` INT(11) NULL DEFAULT '0', PRIMARY ...
  • 主要介绍了Mysql删除重复数据保留最小的id 的解决方法,需要的朋友可以参考下
  • mysql|mysql删除重复数据,一条sql就搞定
  • 详解mysql删除重复数据

    千次阅读 2020-05-06 12:46:08
    mysql删除重复数据语句语句分析模拟测试解析 语句 delete from t_sys_role_menu where id in( SELECT id from( SELECT id from t_sys_role_menu WHERE (companyid,menuid,roleid) IN ...
  • 业务中遇到要从表里删除重复数据的需求,使用了下面的方法,执行成功,大家可以参考使用
  • MySQL删除重复数据只保留最新的一条

    千次阅读 2019-04-17 19:00:37
    MySQL删除重复数据并保留最新的一条,网上有些博客写的有问题,因为他们只考虑到或者说他们的重复数据最多只有两条,当重复数据大于2时,就会出现问题。 案例描述: 按天删除表中重复数据只保留最新的一条(这里...
  • Mysql删除重复数据只保留一条,我的sql这样的 DELETE from t_patient WHERE pa_iid IN (select pa_iid from t_patient group by pa_vname having count(pa_vname)>1) 但是报错了: [Err] 1093 - You can't specify ...
  • MySQL表中存在有大量重复数据,却又只要其中一条数据时,可以使用以下sql来快速删除重复数据,节省时间,sql如下: DELETE FROM `表名` WHERE id NOT IN (SELECT id from ( SELECT min(id) AS id FROM `表名` ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 183,365
精华内容 73,346
关键字:

mysql去除重复数据

mysql 订阅