mysql如何删除重复数据只保留一条(全字段去复)?

没有主键,全字段去重,在不建立临时表的情况下可能做到吗???

2个回答

DELETE
FROM
table a
WHERE
(a.id, a.seq) IN (
SELECT
id,
seq
FROM
table
GROUP BY
id,
seq
HAVING
count(*) > 1
)
AND rowid NOT IN (
SELECT
min(rowid)
FROM
table
GROUP BY
id,
seq
HAVING
count(*) > 1
)

select distinct a from ((select 字段1 a from table) union (select 字段2 a from table) union (select 字段3 a from table) union ... )

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
MySQL中删除重复数据只保留一条
使用SQL删除表中重复数据(单字段) You can't specify target table 'message' for update in FROM clause
mysql删除重复数据只保留一条
简述最近在做一个项目,涉及到需要同步远端数据库的数据到本地,由于误操作导致数据库里面的数据出现重复(冗余) ps: 由于数据量比较大,最后发现冗余了几万条记录 so 手动删除,呵呵 // 下面将以简单的例子来说明下如何处理这个 case 举个栗子以mysql数据库为例:在数据库中建立数据表 [prefix_]article // 冗余表现在aid这列上,部分值出现了重复 另外,主要是考虑到想在aid
【mysql】删除重复数据只保留一条
在SWQA平台中,BUG数据写入数据库的逻辑是每天进行读写一次,若该天是第二次进行写入该天的数据,则应将该天的数据首先删除后再进行写入,但是出现了一个问题,数据未删除时已写入数据,这个时候需要将重复的数据删除删除表中多余的重复记录,重复记录是根据单个字段(abb)来判断,只留有resourceid最小的记录DELETE FROM dataplatform_bugdata_org WHERE
mysql查找删除重复数据,只保留一条
我们可以看出,name字段有重复数据,(华师一附中出现了两次),如何删除重复数据保留其中的一条呢?具体实现方案如下:1.删除重复字段,保留id最小的一条delete FROM `t_school_name` WHERE `name` in (select name from (SELECT `name` FROM `t_school_name` GROUP BY `name` HAVING C...
MySQL删除重复数据行,只保留一条
    delimiter $$ CREATE TABLE `devices_all` ( `device_all_id` int(11) NOT NULL AUTO_INCREMENT, `device_id` varchar(512) DEFAULT NULL, `device_token` varchar(512) DEFAULT NULL, `clie...
MySQL删除重复数据,只保留最早一条
DELETE FROM 表1 WHERE ( 字段1,字段2 ) IN( SELECT 字段1,字段2 FROM 表1 GROUP BY 字段1,字段2 HAVING COUNT(*) >1) AND id NOT IN(SELECT MIN(id) FROM 表1 GROUP BY 字段1,字段2HAVING COUNT(*) >1) ...
Mysql删除重复数据只保留一条
Mysql删除重复数据只保留一条,我的sql这样的rnDELETE from t_patient WHERE pa_iid IN (select pa_iid from t_patient group by pa_vname having count(pa_vname)>1)rn但是报错了:rn[Err] 1093 - You can't specify target table 't_patient' for update in FROM clausern求大神,怎么解决
mysql 删除重复数据,只保留一条
mysql 删除重复数据,只保留一条1.初始化库和数据表2.删除语句 1.初始化库和数据表 SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for channel_daily_report -- ---------------------------...
mysql 删除重复数据只保留一条记录
删除重复数据保留name中id最小的记录 delete from order_info where id not in (select id from (select min(id) as id from order_info group by order_number) as b);   delete from table where id not in (select min(id)...
mysql 删除重复数据只保留一条sql
有个设备表ds_device,有两个字段,如下图: device_code有重复的,我想要把这个表里面所有device_code重复的删除掉,保留一条,sql如下: DELETE FROM `ds_device` WHERE device_code IN (SELECT device_code FROM (SELECT device_code, COUNT(dev
MySQL删除重复数据行(只保留一条)
delimiter $$CREATE TABLE devices_all ( device_all_id int(11) NOT NULL AUTO_INCREMENT,device_id varchar(512) DEFAULT NULL, device_token varchar(512) DEFAULT NULL,client_agent varchar(512) DEFAULT NULL,...
删除mysql数据库中重复数据只保留一条
assessment_id 是表seer_assessment的主键,以key和result_id分组筛选是否有重复数据,保留assessment_id较小的数据 DELETE FROM     seer_assessment WHERE     assessment_id IN (         SELECT             assessment_id         FROM   ...
sql 怎么删除重复数据只保留一条?
with cte as(select *,row_number() over(partition by id order by id)rn from [chengpinid])delete cte where rn>1 
sql删除重复数据,只保留一条
delete from table_name where duplicate_field in (select * from (select duplicate_field from table_name group by duplicate_field having count(duplicate_field) > 1) group by duplicate_field having cou
mysql去除重复数据,只保留一条。
之前写过的爬虫里面,因为种种原因出现了一些重复的数据需要删除掉。然后发现mysql并没有直接的去重功能,要自己写。 查过许多博客之后发现可以这么写。 删除ppeople 重复的数据,然后重复数据中保留id最小的那一条数据。 delete from people  where peopleId in (select peopleId from people group by peopleId
mysql查找重复数据只保留一条记录
比如我直接select * from movie where name="功夫";有三条数据,但我只希望拿到其中任意一条就行了。可以使用group by 分组因为name是一样的,所以分组也就是只有一组,因此得到我想要的结果了。...
mysql怎么删除表的重复数据只保留一条?
如题[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/monkey/8.gif][/img]
根据多个字段删除重复数据,只保留一条数据
[img=https://img-bbs.csdn.net/upload/201607/26/1469524528_642945.jpg][/img]rn现在根据Person_ID,System_No,CONVERT(varchar(100), Consume_Time, 23),Repast_No 这四个条件来判断rn我自己写的:rndelete from XF_Consume a rnwherern(a.Person_ID,a.Repast_No,CONVERT(varchar(100), a.Consume_Time, 23),a.System_No) in (select Person_ID,Repast_No,CONVERT(varchar(100), Consume_Time, 23),System_No from XF_Consume group byrnPerson_ID,Repast_No,CONVERT(varchar(100), Consume_Time, 23),System_No having count(*) > 1)rnand ID_Key not in (select min(ID_KEY) fromrnXF_Consume group by Person_ID,Repast_No,CONVERT(varchar(100), Consume_Time, 23),System_No having count(*)>1)rn为什么会报错呢
Mysql删除重复数据并保留一条
需要将表中重复的数据删除,并且保留一条。 如下,要删除un=aa的数据 测试数据: 思路: 找出un=aa的所有记录,删除非记录中主键最大值的数据。 DELETE FROM tb_user WHERE id <> (SELECT max(id) FROM tb_user) AND un='aa' 报错如下: You can’t specify target...
mysql删除重复数据,并保留一条
因为系统bug在对所在店铺的会员进行屏蔽的时候没有进行查重操作,导致在屏蔽表中出现了重复的数据,所以需要删除此表中姓名重复的数据,并保留其中的一条。模拟数据如下图: 第一条sql : delete from t_black_list where sellerId = 120055122 and names in ( select names from t_black_list wh
mysql 删除重复复数据只保留一条数据
delete from tableA where idnot in (select * from (select id from tableA group by work_order_id) a) SQL 解析 third_workorder_info 表名 重复数据work_order_id 相同的为重复数据 先将分组的ID查出来,然后删除third_workor...
MYSql 通过存储过程删除重复数据(只保留一条)
CREATE TABLE `contact_group` (rn `CONTACT_GROUP_ID` int(9) NOT NULL AUTO_INCREMENT,rn `USER_ID` int(9) DEFAULT NULL,rn `CONTACT_ID` int(9) DEFAULT NULL,rn `TYPE_ID` int(9) DEFAULT NULL,rn `FRIEND_ID` int(9) DEFAULT NULL,rn `FRIEND_NAME` varchar(128) DEFAULT NULL,rn `NAME_CHAR` char(1) DEFAULT NULL,rn PRIMARY KEY (`CONTACT_GROUP_ID`),rn KEY `idx_contact_group_user_type` (`USER_ID`,`TYPE_ID`),rn KEY `idx_contact_group_contact_id` (`CONTACT_ID`),rn KEY `idx_contact_group_mobile` (`MOBILE_NUMBER`)rn) ENGINE=InnoDB AUTO_INCREMENT=434 DEFAULT CHARSET=utf8;rnrn查询contact_group里,所有的user_id,friend_id,type_id完全相同的数据,删除多余的,保留一条。rnCONTACT_GROUP_ID 和其他表关联,不能考虑建临时表,复制数据的方法。rn要求用存储过程实现需求。rn小弟学别的语言的,对SQL语言不是很了解,谢谢各位大哥大姐们给出具体怎么实现过程,rn谢谢了!!rnrnrnrnrnrnrnrn
MySQL删除重复数据,只保留其中最大id的一条
今天同事写了个删除重复数据保留一条记录的数据库语句,问我错在哪儿,正好给大家讲讲【注:以下语句只单对MYSQL数据库】 语句 -- 问题: delete from `show` where id not in ( select MAX(id) from `show` where led = 43 and location = "<===" and status = 1 ...
MySQL删除重复数据,只保留id最小的一条
SQL脚本如下所示 create table `dept` ( `id` int , `name` varchar , `floor` int ); insert into `dept` (`id`, `name`, `floor`) values('1','软件部','1'); insert into `dept` (`id`, `name`, `floor`) values('2',...
mysql删除重复数据只保留id最大一条记录
mysql删除重复数据只保留id最大一条记录
数组如何去除重复数据,只保留一条?
例如一组数组中有rn123456rn123456rn123456rn123sdfrn例如上面,我只想保留一条123456,请问如何做?rn
删除重复数据保留一条报错解决
今天写删除数据库中某群组内相同号码的重复数据,保留一条,,,按照不动脑子的先查出所有非重复号码的id,然后删除不在id范围内的数据,发现报错,应该是子查询于in的多次使用导致的,最后采用建虚拟表方式才解决了这个问题   DELETE FROM tbl_group_inner_contact WHERE inner_c_id NOT IN ( SELECT inner_c_id FROM (...
mysql 删除重复数据只留一条
待删除表结构(表名test_hotel_change_hotels) 执行语句: DELETE FROM test_hotel_change_hotels WHERE hotelid IN ( SELECT hotelid FROM ( SELECT hotelid FROM test_hotel_change_hotels
mysql删除重复的数据,只保留一条
DELETE FROM user WHERE u_id IN( select u_id from ( SELECT u_id FROM user WHERE id IN ( SELECT id FROM user GROUP BY id HAVING count( id ) > 1 ) AND u_id not IN ( SELECT min( u_id ) FROM ...
mysql删除重复记录只保留一条数据
根据order_id分组,删除其他相同order_id的记录,group by默认是拿到每组记录中id最小的记录 DELETE  from shop  WHERE id NOT IN  (select e1.id from (SELECT * from shop s GROUP BY s.order_id) s1)  ...
mysql删除重复记录并只保留一条
/*表结构*/ DROP TABLE IF EXISTS t1; CREATE TABLE t1 (   id int(11) NOT NULL AUTO_INCREMENT,   name varchar(45) DEFAULT NULL,   PRIMARY KEY (id) ) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf
mysql 删除重复的数据只保留一条
DELETE C FROM auth_user_team C JOIN (    SELECT MIN(Id) Id,user_id,team_id FROM auth_user_team    GROUP BY user_id,team_id    HAVING COUNT(1) >  1) TMP ON C.team_id = TMP.team_id AND c.user_id = TM...
MySQL下删除重复记录只保留一条数据
对于Oracle来讲,可以用rowid去删除,保留最大或最小,如下:DELETE from tablename WHERE (id) IN ( SELECT id FROM tablename GROUP BY id HAVING COUNT(id) > 1) AND ROWID NOT IN (SELECT MIN(ROWID) FROM tablename GROUP BY id HAVIN
MySQL删除重复数据保留1条
1.查找表中多余的重复记录,重复记录是根据单个字段id来判断 select * from test where id in ( select id from test group by id having count(1) > 1 ) 删除重复记录保留最新的一条 detele from test where name in ( select name from test group by ...
mysql 删除字段内的重复内容只保留一条
delete from 表名 where 字段1 not in (select 字段1 from (select 字段1 from 表名 group by 需要判断的重复的字段) s) 例如有表UserTable 中字段id,name,sex等字段,需要删除name相同的记录,一个name只保留一条记录 delete from UserTable where id not in (select
php文本数据,如何显示重复数据?再怎么删除重复数据只保留重复数据中的一条?
数据文件ip.txt,其中有部份IP数据相同,如:rnrn1348453617|95.6.5.162|2012-09-24 10:26:57rn1348453024|180.254.252.144|2012-09-24 10:17:04rn1348453020|180.254.252.144|2012-09-24 10:17:00rn1348453018|180.254.252.144|2012-09-24 10:16:58rn1348453008|112.210.114.169|2012-09-24 10:16:48rn1348453007|112.210.114.169|2012-09-24 10:16:47rn1348372772|119.178.17.181|2012-09-23 11:59:32rn1348363141|110.187.62.65|2012-09-23 09:19:01rnrn怎么写一个php文件,只显示输出有重复IP数据的内容,如:rn1348453024|180.254.252.144|2012-09-24 10:17:04rn1348453020|180.254.252.144|2012-09-24 10:17:00rn1348453018|180.254.252.144|2012-09-24 10:16:58rn1348453008|112.210.114.169|2012-09-24 10:16:48rn1348453007|112.210.114.169|2012-09-24 10:16:47rnrn再怎么执行php,删除重复数据只保留重复数据中的最后一条,得到:rn1348453617|95.6.5.162|2012-09-24 10:26:57rn1348453024|180.254.252.144|2012-09-24 10:17:04rn1348453008|112.210.114.169|2012-09-24 10:16:48rn1348372772|119.178.17.181|2012-09-23 11:59:32rn1348363141|110.187.62.65|2012-09-23 09:19:01rnrnrn
MySq去除重复数据只保留一条
本来要删除error_barcode表中barcode字段重复的部分而保留id最小的记录 DELETE FROM     error_barcode WHERE     barCode IN (         SELECT             barCode         FROM             error_barcode         GROUP BY
删除重复记录,只保留一条
把一个数据库中重复的记录只保留一条而把其他的(有重复的)删除掉,如果没有重复的就不删除,条件是把照某一字段是否重复rn一个例子:rn表名:tbrn字段:rnid i_ip i_date i_comeidrn1 x.x.x.x 2002.11.2 78rn2 xx.x.x.x 2002.11.3 79rn3 x.xx.xx.x 2002.11.1 80rn4 xx.xx.x.x 2002.11.9 79rn5 x.xx.xx.x 2002.11.13 80rn6 x.xx.x.x 2002.11.20 79rn7 x.xx.x.xx 2002.11.5 83rn...rn其中,id是自动不重复的,i_date是日期,都不重复,i_comeid是数字,有重复rn条件:把i_comeid中相同的部分只保留一个而其他的删除,结果如下:rnid i_ip i_date i_comeidrn1 ... 2002.11.2 78rn2 ... 2002.11.3 79rn3 ... 2002.11.1 80rn7 ... 2002.11.5 83rn...rnrn(说明:i_comeid是78和83的两条记录本来就是单条的,所以不被删除,79和80的有重复的,所以保留了一条,而把其他的删除了。至于重复中删除哪几条都可以,只要保留一条就可以)rn这样的sql用一句怎么写?
oracle过滤重复数据,只保留一条
select * from t_case where CAR_NUMBER in (select CAR_NUMBER from t_case group by CAR_NUMBER having count(CAR_NUMBER) > 1)               DELETE from t_case WHERE (CAR_NUMBER) IN ( SELECT CAR_NUMBER
求助一句SQL (删除重复数据只保留时间最晚的一条)
数据类型:rnCode char(6)rnCreateTime datetimernPrice floatrn数据如下:rn Code CreateTime Pricern031002 2008-10-17 15:00:15 4.558rn031002 2008-10-17 15:00:16 4.554rn031002 2008-10-17 15:00:17 4.554rn031002 2008-10-17 15:00:18 4.561rn031003 2008-10-17 15:00:19 4.562rn031003 2008-10-17 15:00:20 4.562rn031003 2008-10-17 15:00:21 4.562rn031004 2008-10-17 15:00:22 4.565rn031004 2008-10-17 15:00:23 4.565rn031004 2008-10-17 15:00:24 4.567rnrn我想要的效果是删除Code和Price相同的数据,只保留时间最晚的一条rnrn结果为:rn Code CreateTime Pricern031002 2008-10-17 15:00:15 4.558rn031002 2008-10-17 15:00:17 4.554rn031002 2008-10-17 15:00:18 4.561rn031003 2008-10-17 15:00:21 4.562rn031004 2008-10-17 15:00:23 4.565rn031004 2008-10-17 15:00:24 4.567rnrn请问这句SQL怎么写?谢谢!
相关热词 c# stream 复制 android c# c#监测窗口句柄 c# md5 引用 c# 判断tabtip 自己写个浏览器程序c# c# 字符串变成整数数组 c#语言编程写出一个方法 c# 转盘抽奖 c#选中treeview