精华内容
下载资源
问答
  • 4、查询 people_no 重复且不包含 id 最小的记录 SELECT * FROM t_people WHERE people_no IN ( SELECT people_no FROM t_people GROUP BY people_no HAVING COUNT(people_no) > 1 ) AND id NOT IN ( SELECT MIN(id)...

    1、建表语句

    DROP TABLE IF EXISTS `t_people`;

    CREATE TABLE `t_people` (

    `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,

    `people_no` varchar(18) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,

    `people_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,

    PRIMARY KEY (`id`) USING BTREE

    ) ENGINE = InnoDB AUTO_INCREMENT = 11 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;

    2、插入数据

    INSERT INTO `t_people` VALUES (1, '100', '张三');

    INSERT INTO `t_people` VALUES (2, '100', '张三');

    INSERT INTO `t_people` VALUES (3, '100', '张三');

    INSERT INTO `t_people` VALUES (4, '101', '李四');

    INSERT INTO `t_people` VALUES (5, '101', '李四');

    INSERT INTO `t_people` VALUES (6, '102', '王五');

    INSERT INTO `t_people` VALUES (7, '103', '赵六');

    INSERT INTO `t_people` VALUES (8, '104', '田七');

    INSERT INTO `t_people` VALUES (9, '100', '嘻嘻');

    INSERT INTO `t_people` VALUES (10, '100', '小粉丝');

    70b927fcb62125538effb5d5aa10380e.png

    3、查询 people_no 重复的记录

    SELECT *

    FROM t_people

    WHERE people_no IN (

    SELECT people_no FROM t_people GROUP BY people_no HAVING COUNT(people_no) > 1

    );

    23e7a0cc94300fa76ed8598cea157027.png

    4、查询 people_no 重复且不包含 id 最小的记录

    SELECT *

    FROM t_people

    WHERE people_no IN (

    SELECT people_no FROM t_people GROUP BY people_no HAVING COUNT(people_no) > 1

    ) AND id NOT IN (

    SELECT MIN(id) FROM t_people GROUP BY people_no HAVING COUNT(people_no) > 1

    );

    d9af29604e7266b0fdec841eb6af9627.png

    5、查询 people_no 和 people_name 重复的记录

    SELECT *

    FROM t_people

    WHERE (people_no, people_name) IN (

    SELECT people_no, people_name FROM t_people GROUP BY people_no, people_name HAVING COUNT(*) > 1

    );

    5820ed363f152182d20cafc100aec859.png

    6、查询 people_no 和 people_name 重复且不包含 id 最小的记录

    SELECT *

    FROM t_people

    WHERE (people_no, people_name) IN (

    SELECT people_no, people_name FROM t_people GROUP BY people_no, people_name HAVING COUNT(*) > 1

    ) AND id NOT IN (

    SELECT MIN(id) FROM t_people GROUP BY people_no, people_name HAVING COUNT(*) > 1

    );

    c06cbb45eb29c2f12ad1eb59a8575edc.png

    展开全文
  • 1.根据表中单个字段(name)来查询重复记录SELECT * FROM user WHERE name IN ( SELECT name FROM user GROUP BY name HAVING COUNT(name) > 1 );2.根据表中单个字段(name),删除重复记录,只保留id最小的记录...

    1.根据表中单个字段(name)来查询重复记录

    SELECT * FROM user WHERE name IN ( SELECT name FROM user GROUP BY name HAVING COUNT(name) > 1 );

    2.根据表中单个字段(name),删除重复记录,只保留id最小的记录

    DELETE FROM user WHERE name IN ( SELECT name FROM user GROUP BY name HAVING COUNT(name) > 1 ) AND id NOT IN (SELECT min(id) FROM user GROUP BY name HAVING COUNT(name) > 1);

    3.根据表中多个字段(name, age)来查询重复记录

    SELECT * FROM user u WHERE (u.name, u.age) IN ( SELECT name, age FROM user GROUP BY name, age HAVING COUNT(*) > 1 );

    4.根据表中多个字段(name, age),删除重复记录,只保留id最小的记录

    DELETE FROM user u WHERE (u.name, u.age) IN ( SELECT name, age FROM user GROUP BY name, age HAVING COUNT(*) > 1 ) AND id NOT IN (SELECT min(id) FROM user GROUP BY name, age HAVING COUNT(*) > 1);

    转载时请注明出处及相应链接,本文永久地址:https://blog.yayuanzi.com/13930.html

    75d087ef9a9fb11dc373caaf33adbf7f.png

    54fe503922528d762f0cfb4f3f25f0cf.png

    微信打赏

    ab057a8c86cfcd121cb06aca8195e288.png

    支付宝打赏

    感谢您对作者Sun的打赏,我们会更加努力!    如果您想成为作者,请点我

    展开全文
  • 今天遇到一个场景就是查询发短信的时候需要记录用户的名字和手机号,但是数据库的表里面有很多的重复的数据 问题描述: 刚开始想用distinct , 但是发现distinct函数内只能包含一个参数 解决方案: 通过分组的方式...

    项目场景:

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


    问题描述:

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

    解决方案:

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

    select user_name,phone from users group by user_name,phone; 
    
    展开全文
  • 需求:删除表中重复的数据,保留一条记录,其余的删除下面这条SQL语句的功能就是查询出单表中重复的数据并删除DELETE FROM wz_outpatient WHERE id in(SELECT a.id FROM(SELECT id FROM wz_outpatient WHERE (SFXMDM...

    需求:删除表中重复的数据,保留一条记录,其余的删除

    下面这条SQL语句的功能就是查询出单表中重复的数据并删除

    DELETE FROM wz_outpatient WHERE id in(SELECT a.id FROM

    (SELECT id FROM wz_outpatient WHERE (SFXMDM, KSDM,RQ,HJJE )

    IN ( SELECT SFXMDM, KSDM,RQ,HJJE FROM wz_outpatient GROUP BY SFXMDM, KSDM,RQ,HJJE HAVING count( * ) > 1 )

    AND id NOT IN ( SELECT min( id ) FROM wz_outpatient

    GROUP BY SFXMDM, KSDM,RQ,HJJE HAVING count( * ) > 1 )) a);

    咱们现在开始一步步的拆解这段语句

    step1

    SELECT SFXMDM, KSDM,RQ,HJJE FROM wz_outpatient GROUP BY SFXMDM, KSDM,RQ,HJJE HAVING count( * ) > 1

    这最里层的SQL语句中,咱们根据一些条件查询了wz_outpatient表中的几个字段值,并加上了Having筛选了数据重复条目大于1的结果。

    step2

    SELECT id FROM wz_outpatient WHERE (SFXMDM, KSDM,RQ,HJJE )

    IN ( 上例)

    AND id NOT IN ( SELECT min( id ) FROM wz_outpatient

    GROUP BY SFXMDM, KSDM,RQ,HJJE HAVING count( * ) > 1 )

    这个SQL语句里面有两个查询条件

    将上例的结果作为这次语句的in条件查询id

    id 在第二个条件中将重复数据查询返回了之后,筛选出除了id最小之外的其他数据

    PS: 也可用MAX()功能查询除了id最大的之外的结果集

    这一步骤的结果就是查询了该表中的除了最小id之外的重复数据

    step3

    SELECT a.id FROM (上例) a

    逻辑上其实可以忽略这一步骤直接拼接delete语句就可删除重复数据并保留一条id最小的数据.但是在MySQL中执行的话,会报如下错误

    3695e489d207

    image.png

    大致意思就是不可在直接查询表又对表进行更新

    所以我们就加了step3,将查询结果做出中间过渡表a

    step4

    DELETE FROM wz_outpatient WHERE id in(SELECT a.id FROM

    (SELECT id FROM wz_outpatient WHERE (SFXMDM, KSDM,RQ,HJJE )

    IN ( SELECT SFXMDM, KSDM,RQ,HJJE FROM wz_outpatient GROUP BY SFXMDM, KSDM,RQ,HJJE HAVING count( * ) > 1 )

    AND id NOT IN ( SELECT min( id ) FROM wz_outpatient

    GROUP BY SFXMDM, KSDM,RQ,HJJE HAVING count( * ) > 1 )) a);

    执行SQL,亲测有效😁

    如有疑问可评论,喜欢请like一下😁

    展开全文
  • 同一个表,我要查询重复的车辆车架号(vin)重复的车辆结果 如重复3次以上的: SELECT * FROM `fa_car` WHERE `vin` IN (SELECT `vin` FROM `fa_car` GROUP BY `vin` HAVING COUNT(`vin`) > 3); 执行结果如图: ...
  • mysql数据库如何去重复数据

    千次阅读 2021-02-02 11:44:48
    mysql数据库重复数据的方法:方法一:防止表中出现重复数据当表中未添加数据时,可以在MySQL数据表中设置指定的字段为PRIMARY KEY(主键) 或者 UNIQUE(唯一) 索引来保证数据的唯一性。例如在学生信息表中学号no不...
  • 查询数据库表中某个字段重复的记录 话不多说,直接上代码吧 select ORG_CODE, count(id) from CARCTRL.CTRL_UNUSUAL_INFO group by ORG_CODE HAVING count(id) > 1;
  • {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云数据库专家保驾护航,为用户的数据库应用系统进行性能和风险评估,参与配合进行...
  • 怎么查询数据库重复字段的名字

    千次阅读 2021-01-27 03:18:47
    1.利用sql语句筛选重复数据:1>先根据name名字进行分组,然后利用having 子句进行筛选,选出count(name)数量大于1的就是表中名字重复的记录select name,COUNT(*) ct from bd_dicttype where dr=0 GROUP BY name ...
  • 摘要:本文实例讲述了PHP查询并删除数据库多列重复数据的方法。分享给大家供大家参考,具体如下:
  • 数据库合并重复记录

    2021-01-18 18:01:36
    数据库合并重复记录 create or replace function str_list( str_in in varchar2 ) --分类字段 return varchar2 is str_list varchar2(4000) default null; --连接后字符串 str varchar2(20) default null; ...
  • 在 MySQL 中查询重复记录的方法

    千次阅读 2021-01-31 02:57:15
    使用 WordPress 的过程中,我一直很好奇 WordPress 的一个功能,大家都知道在 ...meta_key,那么在 WordPress 的自定义栏目那里就会看到这个新的字段,可是这个表里面有那么多的数据,他是如何查询得到的数据。...
  • mysql数据库去除重复数据的方法:1、查询需要删除的记录,会保留一条记录。select a.id,a.subject,a.RECEIVER from test1 a left join (select c.subject,c.RECEIVER ,max(c.id) as bid from test1 c where status=0...
  • 对于Oracle数据库一个表中的记录,如果有重复值如何进行删除。我现在将看了点Oracle数据库的东西,因为遇到了一些数据库的问题。对于Oracle数据库一个表中的记录,如果有重复值如何进行删除。我现在将的作法记录下来...
  • 比如:1、添加记录到数据库 这条记录中有一个唯一标识,这时候需要查询数据库,进行判断是否数据库中已经存在该。 2、添加数据时,给的是名称,但要求存的是主键,需要到另一个表去查询这些数据。 2、使用方法 //...
  • Mysql将数据库重复的数据全部显示出来 今天班上同学做项目跑过来问我怎么将表中的数据重复的显示出来。 我也不知道她要做什么功能,但是需求过来了,秉着帮助同学的道理,我开始了我的探索。 我们这里将username...
  • Java实现新增或修改时查询数据库是否重复,检查唯一1 //Mapper层2 int selectCountByCode(String code)34 //mabatis层5 6 resultType="java.lang.Integer">7 select count(*)8 from category9 where code = #{...
  • SQL查询去掉重复数据

    千次阅读 2021-01-26 07:21:01
    本文主要总结数据库去掉重复数据的方法去掉重复数据的方法:第一种:distinct根据单个字段去重,能精确去重;作用在多个字段时,只有当这几个字段的完全相同时,才能去重;关键字distinct只能放在SQL语句中的第一个...
  • 我的数据库包含下表:表:country {code varchar(255) not nullprimary key};类:@Entitypublic class Country {@Id@Column(name = "code")private String mCode;public String getCode() {return mCode;}public ...
  • 很多时候我们查询出来的某个字段是会存在重复值的 那么可以用到这个关键词:DISTINCT去掉重复值 方法如下: 表名:table 字段:name select DISTINCT name FROM table 语法结构如下: select DISTINCT 字段名 from...
  • 在一张表中某个字段下面有重复记录,有很多方法,但是有一个方法,是比较高效的,如下语句:select data_guid from adam_entity_datas a where a.rowid > (select min(b.rowid) from adam_entity_datas b where b...
  • 我在我的数据库中创建了两个表,在这两个表中我同时插入值,现在我要做的是,我想在第二个表中插入记录,但条件是,如果有两个相同记录然后我想只插入一个记录不重复值,在第二个表中有两个字段一个是id,第二个是类别,当...
  • 前言这是一个基本问题,这篇...我们带着这两种思路继续往下看:问题在我们的mysql数据库中,经常会出现一些重复的数据,有些情况我们允许重复数据的存在,但有时候我们也需要删除这些重复的数据。我们如何去处理呢?...
  • 数据库面试题:数据库查询语句

    千次阅读 2021-02-02 13:36:02
    Student(S#,Sname,Sage,Ssex) 学生表Course(C#,Cname,T#) 课程表SC(S#,C#,score) 成绩表Teacher(T#,Tname) 教师表问题:1、查询“001”课程比“002”课程成绩高地所有学生的学号select a.S#from (select s#,score ...
  • MySQL查询重复记录sql语句

    千次阅读 2021-02-08 14:45:02
    在数据开发时我们常常会需要把数据库重复的记录查出来或直接删除数据库重复记录,下面我来给大家总结一些方法,有需要的朋友可参考。常用的语句1、查找表中多余的重复记录,重复记录是根据单个字段(mail_id)来...
  • 文章目录一、查询重复记录二、总结 一、查询重复记录 例:查询员工表里出现重复姓名的记录 思路: 1、查看重复记录,首先要使用用分组函数(group by),再用聚合函数中的计数函数count(name)给姓名列计数,且使用...
  • 对于常规的MySQL数据表中可能存在重复的数据,有些情况是允许重复数据的存在,有些情况是不允许的,这个时候我们就需要查找并删除这些重复数据,以下是具体的处理方法!方法一:防止表中出现重复数据当表中未添加...
  • 数据库条件查询

    2021-03-06 16:01:06
    排序查询/*排序查询:对查询结构进行排序关键字:order by 字段名 [ASC|DESC]ASC:升序(从小到大),默认的DESC:降序(从大到小)*/# 查询所有记录的name和price,结构按照价格 从大到小进行排序SELECT pname,price FROM ...
  • 使用Access2003及以下版本数据库的站长们,数据库的维护是网站正常运营必不可少的步骤,大量的重复数据导致搜索引擎的不收录,特别是无节制的采集文章,网站出现了大量重复文章,出现这种情况不要慌,你完全可以去掉...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 567,408
精华内容 226,963
关键字:

数据库查询重复值