精华内容
下载资源
问答
  • 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去除重复数据

    万次阅读 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
    );
    

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

    展开全文
  • distinct是mysql去重复关键字。 二、使用规则 1.distinct关键字必须在select后面第一位 表里所有数据的去重复 select distinct comptemplate.* from comptemplate 表里所有某个字段的数据去重复 select ...

    mysql去重复关键字distinct的用法和distinct去重复失效问题

    一、distinct是什么?

    distinct是mysql去重复关键字。
    

    二、使用规则

    1.distinct关键字必须在select后面第一位

    表里所有数据的去重复
    
    select
        distinct comptemplate.*
        from comptemplate
    
    表里所有某个字段的数据去重复
    
    select
        distinct comptemplate.comptemplate_name
        from comptemplate
    

    2.distinct去重复的依据

    	distinct去重复的依据是从select到from里的所有字段,
    也就是每一行的数据和所有的数据做对比,如果重复则去除掉。
    

    三.去重复失效

    1.distinct关键字错误理解的sql使用

     多表关联的错误理解使用,想对comptemplate表的所有重复数据
     去重,查出来的数据如下。
    
       select
       distinct comptemplate.*,tubetemplate.*
       from comptemplate
       left join extemplate_tube_relation on extemplate_tube_relation.comptemplate_id = comptemplate.comptemplate_id
       left join tubetemplate on extemplate_tube_relation.tubetemplate_id = tubetemplate.tubetemplate_id
    

    在这里插入图片描述

    2.distinct关键字正确理解的sql使用

    多表关联的正确理解使用,想对comptemplate表的所有重复数据
    去重,查出来的数据如下。
    
       select
       distinct comptemplate.*
       from comptemplate
       left join extemplate_tube_relation on extemplate_tube_relation.comptemplate_id = comptemplate.comptemplate_id
       left join tubetemplate on extemplate_tube_relation.tubetemplate_id = tubetemplate.tubetemplate_id
    

    在这里插入图片描述

    3.对比两个使用sql

    在select中多了tubetemplate.*,导致无法去重复comptemplate.*。
    原因是因为distinct是对一行去重复,也就是select到from里的所有字段,
    每一行的数据和所有的数据做对比,如果重复则去除掉。
    

    四.注意

    	如果表数据存在空格不一的情况,也是无法去重复的!
    
    展开全文
  • mysql 去重复查询 子查询

    千次阅读 2019-06-27 11:13:35
    SELECT e.id, e.on_line, e.name, (SELECT d.longitude FROM sys_equipment_data d WHERE d.equipment_id = e.id ORDER BY d.transmission_time DESC LIMIT 1) AS longitude, (SELECT d.latitude FROM sys_equipment...

    SELECT
    e.id,
    e.on_line,
    e.name,
    (SELECT d.longitude FROM sys_equipment_data d WHERE d.equipment_id = e.id ORDER BY d.transmission_time DESC LIMIT 1) AS longitude,
    (SELECT d.latitude FROM sys_equipment_data d WHERE d.equipment_id = e.id ORDER BY d.transmission_time DESC LIMIT 1) AS latitude
    FROM
    sys_equipment e

     事实证明同样的查询结果关联查询要比子查询耗时。

    展开全文
  • 如果mysql大于5.7版本 可能会报错 SELECT id from (SELECT name,id FROM test GROUP BY name HAVING count(1)>1) a > 1055 - Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated ...
  • mysql去除重复的数据

    千次阅读 2016-06-30 14:24:08
    有时候数据库会不可避免的导入重复的数据,我们就需要根据某些条件确定哪些是重复的数据,然后把它删除。 创建如下表 <span style="font-size:18px;">CREATE TABLE `first_table` ( `id` int(11) ...
  • select * from (select *,去重复字段 as code from 表名 order by id desc) t group by code;
  • mysql 去除重复字符串的函数

    千次阅读 2017-10-27 17:17:57
    create function deleteManyChar(in_str varchar(600)) RETURNS VARCHAR(600) ...写mysql的函数要注意,返回值的写法是returns,多了一个s 剩下的要注意空白的地方有没有全角符号    
  • mysql去除重复数据,只保留一条。

    千次阅读 2017-12-07 14:48:15
    然后发现mysql并没有直接的去重功能,要自己写。 查过许多博客之后发现可以这么写。 删除ppeople 重复的数据,然后重复数据中保留id最小的那一条数据。 delete from people  where peopleId in (select ...
  • mysql数据库如何去重复数据

    千次阅读 2021-02-02 11:44:48
    mysql数据库去重复数据的方法:方法一:防止表中出现重复数据当表中未添加数据时,可以在MySQL数据表中设置指定的字段为PRIMARY KEY(主键) 或者 UNIQUE(唯一) 索引来保证数据的唯一性。例如在学生信息表中学号no不...
  • mysql查询去除重复记录

    万次阅读 多人点赞 2019-03-01 21:54:38
    mysql查询去除重复记录 1:使用distinct select distinct name from a where statesign=0 查询表a中的name字段,去除重复记录 2:使用group by select name from a where statesign=0 group by name 查询表a中的name...
  • 主要介绍了Mysql删除重复的数据 Mysql数据去重复,需要的朋友可以参考下
  • MySQL去除查询结果重复

    千次阅读 2019-09-18 02:10:29
    mysql手册也跟我过不,先给了我希望,然后又把我推向失望,好狠哪。。。。 再仔细一查,group_concat函数是4.1支持,晕,我4.0的。没办法,升级,升完级一试,成功。。。。。。 终于搞定了,不过这样一来,...
  • MySQL删除重复

    千次阅读 2019-11-20 11:39:18
    在数据库的操作中,经常会遇到有重复的数据,并且这些重复的行是没用的数据,需要删除。我做了一个测试表,如下: 苹果和香蕉有重复的。 删除重复行 1. 使用not in 删除重复行,SQL语句如下: DELETE FROM fruit_...
  • 详解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 去除重复的用户,按倒序排列

    千次阅读 2012-05-11 11:00:42
    mysql表中有多个用户,每个用户有他的成绩,一个用户可能有多个不同的成绩,  查询结果成绩由高到低排列,有多个成绩的用户,只取他的最高分。   select * from user group by name order by score ...
  • 最近在研究一批网上获取的数据,记录条数约80多万条,单个表大小约 400M,表中重复记录约1/3,在网上查找了些去除重复记录(重复记录保留最小ID值)的sql语句,整理成如下: DROP TABLE if exists tmp_table1 ; ...
  • 防止MySQL重复插入数据的三种方法

    千次阅读 2021-02-01 05:24:49
    本篇文章小编给大家分享一下防止MySQL重复插入数据的三种方法,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。新建表格CREATE TABLE `person` (`id` int NOT ...
  • Mysql select 如何去除重复数据

    千次阅读 2019-05-26 11:27:05
    如何避免重复数据 首先可以使用distinct字段 在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。 关键词 DISTINCT 用于返回唯一不同的值。 语法:SELECT DISTINCT 列...
  • mysqlmysql删除重复记录并且只保留一条

    万次阅读 多人点赞 2018-09-03 21:10:13
    1. 查询全部重复的数据: 2. 删除全部重复试题: 3. 查询表中多余重复试题(根据depno来判断,除了rowid最小的一个) a. 第一种方法: b. 第二种方法: c. 补充第三种方法(根据评论区给的删除总结出来的): ...
  • MySQL删除重复记录

    2008-03-21 11:26:17
    MySQL删除重复记录方法。
  • #coding:utf-8 import mysql.connector mydb = mysql.connector.connect( host='localhost', user='root', passwd='123456', database='mydatabase', buffered = True ) print(mydb) #1、创建数据库...
  • MySQL去除查询结果重复值 count关键字

    万次阅读 2018-08-12 07:29:23
    在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是...
  • 能够知道去除重复数据行的关键字 1. as关键字 在使用SQL语句显示结果的时候,往往在屏幕显示的字段名并不具备良好的可读性,此时可以使用 as 给字段起一个别名。 使用 as 给字段起别名 select id as 序号, name ...
  • NULL 博文链接:https://onestopweb.iteye.com/blog/2318954
  • SQL查询语句去除重复

    千次阅读 2021-01-21 03:48:03
    ....]) [取重复的第一行] 或者 select * from table where id in (select max(id) from table group by [去除重复的字段名列表,....]) [取重复的最后一行] 3.没有唯一键ID select identity(int,1,1) as id,* into ...
  • MySQL数据库中删除重复记录的方法总结[推荐]
  •  首先按照常规首段,使用having函数检查重复项,完事一个一个的删除。不要问我having检测重复项的sql咋写,你懂得哈。。。这个在只有几条重复的时候还可以。要是几千上万条不同数据重复,那咋办。。。 完事呢,咱...
  • 现在想从这5条记录中查询所有title不重复的记录
  • mysql中去除重复字段-distinct

    万次阅读 2015-12-21 01:47:44
    mysql中去除重复字段-distinct今天在进行数据处理的时候需要去除重复的数据,使用distinct十分便捷,所以做一下说明。 使用distinct注意事项 distinct一般用法 在统计中使用等其他用法 具体问题解决 1、注意事项 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 409,510
精华内容 163,804
关键字:

mysql去重复

mysql 订阅