MYSQL 处理重复数据 技术教程文章

mysql删除表中重复数据创建唯一索引。

表结构如下,需要增加xx,yy复合唯一索引。create table table_a (id int(11) NOT NULL AUTO_INCREMENT,xx int(11) NOT NULL,yy int(11) NOT NULL,PRIMARY KEY (id)) ENGINE=InnoDB DEFAULT CHARSET=utf8; 保留最小iddelete a.* from table_a as a,( select min(id) id , xx,yy from table_a group by xx,yy having count(1)>1) as b where a.yy=b.yy and a.xx=b.xx and a.id > b.id; 保留最大iddelete a.* from table_a as a,( ...

mysql根据多列去除重复数据【代码】【图】

首先我的数剧是这样的:   我想根据name1、relation和name2判断如果重复的话删除重复的数据且保留id最小的一条数据,于是写了下面的sql语句DELETE FROM star_relation WHERE (name1,relation,name2)IN(SELECTname1,relation,name2FROM star_relationGROUP BY name1,relation,name2HAVING COUNT( * ) > 1)AND id NOT IN(SELECTMIN(id) AS idFROM star_relationGROUP BY name1,relation,name2HAVING COUNT( * ) > 1)结果报了以下...

mysql 查询重复数据 date_add 使用方法【代码】

1 根据某个字段查询重复数据 id大的单独查询出来 SELECT* FROMzxpx.t_app_usermlq WHEREjob_no IN ( SELECT job_no FROM zxpx.t_app_usermlq GROUP BY job_no HAVING count( job_no ) > 1 ) AND id NOT IN ( SELECT min( id ) FROM zxpx.t_app_usermlq GROUP BY job_no HAVING count( job_no )> 1 );2 根据某个字段查询重复数据 id小的单独查询出来 SELECT* FROMzxpx.t_app_usermlq WHEREjob_no IN ( SELECT job_no FROM zxpx....

关于mysql筛去重复数据的问题【代码】

distinct可以做到筛去重复数据的作用,但它只能写在最前面,即select * distinct a,b,c from table;的形式, 如果为select * a,distinct b,c from table;就会报错, 并且如果有多个字段的话只会去除a,b,c都相同的字段,很不方便。 于是发现group by也能起到筛选的作用,并且可以随意指定字段,没有distinct的限制。 但group by的策略是选择最早出现的数据作为留下的数据,即便使用order by也没用,因为它的优先级是比order by排序...

MySQL中删除重复数据时保留一行【图】

不管是在测试中还是面试中,总是会遇到这种场景,某个数据表中的数据存在重复,要求删除重复数据时,保留一行。接下来,我给大家演示一下,如何写出符合要求的SQL语句。 1、首先,创建一个数据表SC,建表语句如下: CREATE TABLE sc (id INT PRIMARY KEY auto_increment,SNO VARCHAR(3) NOT NULL, CNO VARCHAR(5) NOT NULL, DEGREE NUMERIC(10, 1) NOT NULL ); 2、接着插入一些数据,这些数据中有一部分是重复的。 INSERT INTO SC...

mysql快速删除重复数据,并保留id最大的一条

delete from vehicle where (VLPN,VLPNColor) in ( select t.VLPN,t.VLPNColor from ( select VLPN,VLPNColor,count(*) from vehicle group by VLPN,VLPNColor having count(*)>1 ) t) and VehicleID not in ( select t.VehicleID from ( select max(VehicleID) as VehicleID from vehicle group by VLPN,VLPNColor having count(*)>1 ) t)

MySQL查询重复数据【代码】【图】

假设有一个用户表 user,数据如下:1、查询表中 uid 重复的数据SELECTid,uid,name FROM USER WHERE uid IN (SELECTuidFROM USERGROUP BY uidHAVING COUNT(uid) > 1); 2、查询表中重复数据,排除最小idSELECTid,uid,name FROM user WHERE uid IN (SELECTuidFROM userGROUP BY uidHAVING COUNT(uid) > 1) AND id NOT IN (SELECTMIN(id)FROM userGROUP BY uidHAVING COUNT(uid) > 1); 3、删除表中重复数据,如果是重复数据,则保留id最...

MySQL 处理重复数据:防止表中出现重复数据、统计、过滤、删除重复数据【代码】

MySQL 处理重复数据 有些 MySQL 数据表中可能存在重复的记录,有些情况我们允许重复数据的存在,但有时候我们也需要删除这些重复的数据。 本章节我们将为大家介绍如何防止数据表出现重复数据及如何删除数据表中的重复数据。防止表中出现重复数据 你可以在 MySQL 数据表中设置指定的字段为 PRIMARY KEY(主键) 或者 UNIQUE(唯一) 索引来保证数据的唯一性。 让我们尝试一个实例:下表中无索引及主键,所以该表允许出现多条重复记...

MySQL 多字段联合去重删除重复数据保留id最小的一条

DELETE FROM 表名 WHERE (字段1,字段2,字段3) IN (SELECT 字段1,字段2,字段3 FROM (SELECT 字段1,字段2,字段3 FROM 表名 GROUP BY 字段1,字段2,字段3 HAVING COUNT(*)>1) s1) AND id NOT IN (SELECT min(id) as id FROM (SELECT id FROM 表名 GROUP BY 字段1,字段2,字段3 HAVING COUNT(*)>1) s2); 参考 https://www.cnblogs.com/XiaoMingBlingBling/p/11146375.html 修改 id 为 min(id) as id

mysql-来自多个表的SQL SELECT列,而无需重复数据【代码】

我试图使用以下sql语句查询2个表,以尝试从每个包含特定ID的表中返回所有记录.SELECT Phone.Phone, Email.Email FROM Contacts.Phone, Contacts.Email WHERE Phone.ContactId = :contactId AND Email.ContactId = :contactIdContacts.Phone表包含给定ID的2个电话号码,而Contacts.Email包含给定ID的1个电子邮件.使用上面的sql查询,我得到以下行.当然,这只是一个例子,其中每个表的结果集的行数确实匹配.Row 1: 555-555-5555 - email@...

mysql-SQL中的重复数据

我必须在数据库中保留重复的数据,所以我的问题是…最好将重复的数据保留在同一表中,然后添加一列以标识原始数据,或者我必须创建另一个表来保存复制的数据?解决方法:我建议将重复的数据保存在另一个表或什至另一个架构中,以免继续使用该表会造成混淆. 想象一下,现在有六个月的时间来尝试猜测这些重复行的用途. 此外,这些重复的行不能反映此表的业务目的.将它们存储在名为[table_name] _dup的表或名为[schema_name] _dup的模式中会更...

MySQL 创建唯一索引忽略对已经重复数据的检查【代码】

MySQL 创建唯一索引忽略对已经重复数据的检查 在创建唯一索引的基础上加上关键字"IGNORE "即可。# 重复数据 mysql> select aid,count(aid) as total ,email,tel_no,account_type,exten,passwd from fudao_admin group by user_name having total> 1; +-------+-------+--------------------------+--------+--------------+-------+----------------------------------+ | aid | total | email | tel_n...

mysql-如何在不获取重复数据的情况下进行查询?【代码】

我有一个查询,在另一个表上有一个联接:select * from tbl_scales s join tbl_recipes r on r.category_id = s.product_id并显示这样的冗余数据,scale_id r_id date recipe_name1 1 2012-05-20 Cheese Bread 6 1 2012-05-21 Cheese Bread 1 1 2012-05-20 Spanish Bread 6 1 2012-05-21 Spanish Bread 3 4 2012-05-20 Pancake 8 4 2012-05-21 Pancake 1 ...

mysql去除重复数据【代码】

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 – 使用子查询重复数据删除【代码】

我继承了一个缺乏唯一约束的数据库,因此数据是重复的.我现在正在尝试删除重复的记录,然后添加一个约束来阻止这种情况发生. 我有这个问题:SELECT count(*) as dacount, substr(group_concat(id), (locate(',', group_concat(id))+ 1)) FROM `game` group by matchid, ordinal having dacount > 1 order by dacount desc这正确地给了我需要删除的行的ID.但问题是我不能在DELETE上使用它作为子查询,因为带有having参数的dacount.还有...

MySQL – GROUP_CONCAT返回重复数据,不能使用DISTINCT【代码】

我有一个规范化的数据库,我正在尝试使用JOIN和GROUP_CONCAT从多个表返回数据. 问题:使用GROUP_CONCAT复制行.我不能使用DISTINCT,因为某些数据(成分mfr)确实需要重复. 这是我当前的查询和数据库结构(SQL Fiddle):SELECT recipe.*, GROUP_CONCAT(recipe_detail.ingredient_id) AS iid, GROUP_CONCAT(ingredient.name) AS iname, GROUP_CONCAT(ingredient_mfr.abbr) AS mabbr, GROUP_CONCAT(recipe_tag.name) AS tag FROM rec...

MySQL 处理重复数据【代码】

有些 MySQL 数据表中可能存在重复的记录,有些情况我们允许重复数据的存在,但有时候我们也需要删除这些重复的数据。 本章节我们将为大家介绍如何防止数据表出现重复数据及如何删除数据表中的重复数据。防止表中出现重复数据 你可以在 MySQL 数据表中设置指定的字段为 PRIMARY KEY(主键) 或者 UNIQUE(唯一) 索引来保证数据的唯一性。 让我们尝试一个实例:下表中无索引及主键,所以该表允许出现多条重复记录。CREATE TABLE p...

mysql重复数据删除【代码】

这显示了所有具有两个完全相同的条目的名字和姓氏SELECT `firstname`,`lastname`,COUNT(*) AS Count FROM `people` GROUP BY `firstname`,`lastname` HAVING Count = 2如何将其转换为带有LIMIT的DELETE FROM WHERE语句,以仅删除每个条目中的一个并保留另一个条目. 好吧,这似乎是技术的方式我只是在php循环中做它解决方法:您可以创建一个表,其中包含每个重复项的1条记录:然后从人员表中删除所有重复记录,然后重新插入重复记录.--...

使用pandas模块帮助朋友处理mysql中的重复数据【代码】【图】

接到朋友求助,说自己一个数据库里的某个表有大量重复数据,使用mysql语句处理的速度太慢,每次只能处理1W条数据,总共800W条数据需要处理,耗时耗力。分开处理也会有大量的遗漏数据需要二次三次处理,最后得到的数据还是会不准确,很显然用mysql语句处理不怎么好。 我想到了python中有一个模块pandas是专门用来处理海量数据的,马上网上查下该模块是否有相关的方法,果然,pandas里的drop_duplicates方法就是用来去除重复数据的,...

MySQL重复数据中限定操作n条【代码】

对于一个表,有时可能里面有很多重复的条,比如: +-----------+---------+| coupon_id | user_id |+-----------+---------+| 8 | 15 || 5 | 15 || 8 | 15 || 6 | 15 || 5 | 15 || 8 | 15 || 6 | 15 || 10 | 15 || 10 | 15 || 10 | 15 || 11 | 15 || 12 | 15 || ...