精华内容
下载资源
问答
  • 在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。 关键词 DISTINCT 用于返回唯一不同的值。 语法: SELECT DISTINCT 列名称 FROM 表名称 详细使用说明可查看此...

    1.使用 DISTINCT 关键词

    在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。

    关键词 DISTINCT 用于返回唯一不同的值。

    语法:

    SELECT DISTINCT 列名称 FROM 表名称
    

    详细使用说明可查看此链接:SQL SELECT DISTINCT 语句

    其中的一种使用方式:
    select 
        t.a A ,
        count(distinct t.b) B
    from table_name t
        group by t.a

    2.使用row_number() over (partition by col1 order by col2)

    row_number() over (partition by col1 order by col2) 表示根据col1分组,
    在分组内部根据col2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)
    

    详细说明可查看此链接:SQL ROW_NUMBER() OVER函数的基本用法用法

    select t.*
      from (select a.*,
                   row_number() over(partition by a.col1 order by a.col2 desc) rn
              from table_name a) t
     where t.rn = 1

    思路:
    通过col1字段分组后再以col2字段组内降序排列并添加序号,然后再查询出组内序号等于1的数据实现去重操作。

    展开全文
  • 项目场景: 今天遇到一个场景就是查询发短信的时候需要记录用户的名字和手机号,但是数据库的表里面有很多的...通过分组的方式实现去除重复数据 select user_name,phone from users group by user_name,phone; ...

    项目场景:

    今天遇到一个场景就是查询发短信的时候需要记录用户的名字和手机号,但是数据库的表里面有很多的重复的数据


    问题描述:

    刚开始想用distinct , 但是发现distinct函数内只能包含一个参数

    解决方案:

    通过分组的方式实现去除重复数据

    select user_name,phone from users group by user_name,phone; 
    
    展开全文
  • 主要介绍了PHP查询并删除数据库多列重复数据的方法,利用数组函数实现该功能,涉及PHP数据库操作的相关技巧,需要的朋友可以参考下
  • 数据库去除重复数据

    千次阅读 2019-02-15 14:35:36
    背景:去除数据库中字段重复的数据 表t_bmk 包含三个字段 id...1、根据重复字段用group by函数进行分组,查出所有重复的数据,用max函数获取每组重复数据最大的id select fenzu_code,zhiwen_status,count(fenzu_cod...

    背景:去除数据库中字段重复的数据

    表t_bmk 包含三个字段 id,ksno,fenzu_code;现在去除t_bmk中ksno和fenzu_code两个字段重复的数据,步骤如下:

    方法一:

    1、根据重复字段用group by函数进行分组,查出所有重复的数据,用max函数获取每组重复数据最大的id
    select fenzu_code,zhiwen_status,count(fenzu_code),max(id) id from t_bmk where fenzu_code is not null group by fenzu_code,zhiwen_status having count(1)>1;

    只取id:

    select max(id) id from t_bmk where fenzu_code is not null group by fenzu_code,zhiwen_status having count(1)>1;

     

    2、查询出剩下的不重复的数据的id
    select fenzu_code,zhiwen_status,count(fenzu_code),max(id) id from t_bmk where fenzu_code is not null group by fenzu_code,zhiwen_status having count(1)=1;

    只取id:

    select id from t_bmk where fenzu_code is not null group by fenzu_code,zhiwen_status having count(1)=1;

    3、每一组重复数据的最大id加上不重复数据的id就是所有的不包含重复数据的id,根据剩下的id可以去掉重复数据:
    delete from t_bmk where id not in(
    select max(id) id from t_bmk where fenzu_code is not null group by fenzu_code,zhiwen_status having count(1)>1 union
    select max(id) id from t_bmk where fenzu_code is not null group by fenzu_code,zhiwen_status having count(1)=1);

    方法二:

    1、根据重复字段用group by函数进行分组,查出所有重复的数据,用max函数获取每组重复数据最大的id
    select fenzu_code,zhiwen_status,count(fenzu_code),max(id) id from t_bmk where fenzu_code is not null group by fenzu_code,zhiwen_status having count(1)>1;

    只取id:

    select max(id) id from t_bmk where fenzu_code is not null group by fenzu_code,zhiwen_status having count(1)>1;

     

    2、查询出所有重复数据的id

    select id from t_bmk where (fenzu_code,zhiwen_status) in(
    select fenzu_code,zhiwen_status from t_bmk where fenzu_code is not null group by fenzu_code,zhiwen_status having count(1)>1
    );

    3、从这些重复数据的id中去除,每组重复数据的最大id,就是应该删除数据的id
    select id from t_bmk where (fenzu_code,zhiwen_status) in(
    select fenzu_code,zhiwen_status from t_bmk where fenzu_code is not null group by fenzu_code,zhiwen_status having count(1)>1
    ) and id not in(select max(id) id from t_bmk where fenzu_code is not null group by fenzu_code,zhiwen_status having count(1)>1);

    4、直接根据id删除重复数据:
    delete from t_bmk where id in(
    select id from t_bmk where (fenzu_code,zhiwen_status) in(
    select fenzu_code,zhiwen_status from t_bmk where fenzu_code is not null group by fenzu_code,zhiwen_status having count(1)>1
    ) and id not in(select max(id) id from t_bmk where fenzu_code is not null group by fenzu_code,zhiwen_status having count(1)>1));

    方法三:
     

    表t_bmk 包含三个字段 id,ksno,fenzu_code;现在去除t_bmk中ksno和fenzu_code两个字段重复的数据,步骤如下:

    方法一:

    1、根据重复字段用group by函数进行分组,查出所有重复的数据,用max函数获取每组重复数据最大的id
    select fenzu_code,zhiwen_status,count(fenzu_code),max(id) id from t_bmk where fenzu_code is not null group by fenzu_code,zhiwen_status 

    取每一组的最大id:

    select max(id) id from t_bmk where fenzu_code is not null group by fenzu_code,zhiwen_status;

     

    2、每一组数据的最大id就是所有的不包含重复数据的id,根据剩下的id可以去掉重复数据:
    delete from t_bmk where id not in(
    select max(id) id from t_bmk where fenzu_code is not null group by fenzu_code,zhiwen_status);

     

     

     

    展开全文
  • 这里的重复数据数据库中每一列的值都相同的数据,有时候也许是没有主键的原因导致数据可能重复,或者是,除了主键,其他数据重复,那么下面的方法可以都这些重复数据进行删除,保留下重复数据中的一行可以。...
  • 开发项目的时候往往会有重复数据,如何去除重复数据呢?今天给大家分享一个简单的方法, 正常无论是用框架开发还是原生php都很少有自带的去重复的方法,基本上都需要我们自己嵌入原生sql,下面 直接给大家上源码 /...

    原创文章引自(https://www.ympfb.com/show-29-64-1.html

    开发项目的时候往往会有重复数据,如何去除重复数据呢?今天给大家分享一个简单的方法,
    正常无论是用框架开发还是原生php都很少有自带的去重复的方法,基本上都需要我们自己嵌入原生sql,下面直接给大家上源码


    //原生sql去重只留一条
      $res = Db::execute('DELETE from data WHERE (phone) in
      (SELECT phone from (SELECT phone FROM data GROUP BY phone HAVING COUNT(phone)>1) s1)
      AND id NOT in (SELECT id from (SELECT id FROM data GROUP BY phone HAVING COUNT(phone)>1)
            s2)
      ');
      if($res){
       $this->success('去重成功', 'index/maamiya');
      }else{
       $this->error('已经没有重复的了');
      }


     

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

    千次阅读 2018-07-26 11:59:25
    方法一: //创建一个临时表 create table temp_tableas select * fromold_table; //清除原先表的数据 (truncate与delete的...//重复数据只显示第一条数据,把处理过后,数据唯一的数据插入到原先表里面 inse...
  • oracle数据库各种删除重复数据方法
  • 想往表中插入一条数据,如果表中没有该条数据才插入,如果已经存在该条数据不插入。  该怎么处理?  一个比较笨的办法,是先用select查找表中是否已经存在该数据,然后再根据返回的结果决定是否insert。这样做...
  • 数据库中有重复数据时,用到哪些sql语句? 这里有若干数据,并掺杂了重复数据 1. 查看过滤重复后的数据 思路, group by 分组可以对多个列进行分组, 分组后可以过滤掉重复的数据 sql语句: SELECT id,`name`,...
  • 数据库中有重复数据时,用到哪些sql语句? 建表: CREATE TABLE `user` ( `id` bigint(255) NOT NULL AUTO_INCREMENT, `name` varchar(20) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '名称', `age`...
  • 数据库去除重复数据

    千次阅读 2018-03-09 11:21:06
    (如果只是查询的过程中去掉重复数据,只需把NOT IN改为IN即可。)第二个是关于修改同一列不同行数据的问题。我遇到的是默认地址的问题,把一个设置为默认地址的时候就要把别的设置为不默认。(表中有一个关于是否是...
  • 数据库去除重复记录

    万次阅读 2018-05-29 17:37:34
    所以跟大家分享下: 如何删除数据库重复的记录 一般情况下,数据库重复有以下那么三种方法: 第一种: 两条记录或者多条记录的每一个字段值完全相同,这种情况去重复最简单,用关键字distinct就可以去掉。...
  • 有时需要查询出某个字段不重复的记录,虽然mysql提供有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只 用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是distinct只能返回...
  • 即有唯一键主键ID(最常见情况)如果是这种情况的话用distinct是过滤不了的,这就要用到主键id的唯一性特点及group by分组select*fromtablewhereidin(selectmax(id)fromtablegroupby[去除重复的字段名列表,....]);...
  • 数据库查询去除重复值的方法

    千次阅读 2013-11-21 15:44:30
    今天碰到一问题,把数据库取到的一组数据付给下拉菜单,我就获取了自增主键id和所需值,完了之后才发现下拉菜单里好几百条记录,而且很多记录都一样,原因就是 自增id都不一样没法分组,数据库的值又不能随便改,没办法就...
  • MySql数据库去除重复数据

    千次阅读 2019-09-03 23:20:11
    今天群内有群友提出了一个问题,就是MySql中删除重复数据的问题,然后回答了一下,发现正好接触到了之前可能没关注的一点儿小知识,在此做下简要记录(哦对,昨天晚上在试用腾讯云数据库的时候还遇到一个问题,就是...
  • Sql server 数据库查询重复数据和删除重复数据保留第一条数据 演示内容数据 数据库表 create table register( Id int primary key identity, [UserName] nvarchar(255), MobilePhone nvarchar(255), ...
  • 今天小编就为大家分享一篇关于Android中的sqlite查询数据去掉重复值的方法实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
  • 教你如何在SQL数据库后台通过SQL语句删除重复SQL记录。
  • MySQL 去除重复数据实例详解 有两个意义上的重复记录,一是完全重复的记录,也即所有字段均都重复,二是部分字段重复的记录。对于第一种重复,比较容易解决,只需在查询语句中使用distinct关键字去重,几乎所有...
  • 1、创建临时表 mysql> CREATE TABLE tmp SELECT last_name, first_name, sex FROM person_tbl GROUP BY (last_name, first_name,...2、在数据表中添加 INDEX(索引) 和 PRIMAY KEY(主键)这种简单的方法来删除表
  • 数据存储过程中,可能会遇到数据主键重复的情况,我们可以通过下面几个方法进行处理:  1. 若数据不存在插入,存在更新  2. 使用duplicate key关键字,如插入数据时发生主键冲突就更新数据  3. 使用Ingore...
  • //查询方法 public List<HomeUser> find(){ //去除重复数据 Cursor user = db.query(true,"user", null, null, null, "name", null, null,null); List<HomeUser> list=new ArrayList(); while (u
  • 相信大家在实际开发中在数据库方面都遇到过很多重复数据的问题,今天就和大家谈谈关于删除重复数据的方法,为了更加直观的和更容易的掌握方法我就从建表开始到插入重复数据到删除重复数据的核心sql语句给大家演示。...
  • 数据存储过程中,可能会遇到数据主键重复的情况,我们可以通过下面几个方法进行处理: 1. 若数据不存在插入,存在更新 2. 使用duplicate key关键字,如插入数据时发生主键冲突就更新数据 3. 使用Ingore关键字 ...
  • 查询LSCJMB表中F_CJZY对应列值重复数据: SELECT F_CJZY,COUNT(F_CJZY) FROM LSCJMB GROUP BY F_CJZY HAVING COUNT( F_CJZY )&gt;1 查出了重复的列及重复行数: 删除全部涉及重复数据: delete from ...
  • 在一些情况下,如要查询数据中的几个字段,此时有可能产生重复记录,而重复的记录是不符合规范的,数据表是现实世界的客观反映,因此,空值的产生是不可避免。  1、查询时不显示重复记录  在实现查询操作时,...
  • mysql数据库删除重复数据保留一条

    万次阅读 多人点赞 2019-07-09 22:15:13
    现在身份证号identity_id和姓名name有很多重复数据,需要删除只保留一条有效数据。 2.模拟环境 1.等入mysql数据库,创建一个单独的测试数据库mysql_exercise create database mysql_exercise charset utf8; 2....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 130,545
精华内容 52,218
关键字:

数据库查询去除重复的数据