mysql数据库怎么删除重复数据?如果两行的 a和b两列都一样。那么说明是重复的 删除其中一行。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql数据库怎么删除重复数据?如果两行的 a和b两列都一样。那么说明是重复的 删除其中一行。相关的知识,希望对你有一定的参考价值。
mysql数据库怎么删除重复数据?如果两行的 a和b两列都一样。那么说明是重复的 删除其中一行。 并且a b都不是主键。 怎么删除?
如果你的表结构设计的比较严谨的话,比如当前表table是有主键ID,先把第一个重复值选出来: select min(id) from table group by a,b having count(*) > 1;
然后删除重复的记录: delete from table where id > (select min(id) from table group by a,b having count(*) > 1);
如果你的表设计的不严谨,比如没有ID这个可供操作的主键,那就只能在where后面多一些条件直到找出唯一的筛选方法。 参考技术A 建议不要轻易地删除数据库内容,如果非要删除的话,建议用代码查找符合条件的数据,找出相应的id,然后用id跟数据库一条一条做对比,看是否应删除数据在手动删除,这样能保证不会有误删的情况,在一个问题就是操作数据库之前一定要做好备份,否则后果不堪设想!加油
查找重复行的索引 [重复]
【中文标题】查找重复行的索引 [重复]【英文标题】:Find indices of duplicated rows [duplicate] 【发布时间】:2012-09-11 19:11:07 【问题描述】:R 中重复的函数执行重复行搜索。如果我们想删除重复项,我们只需要写df[!duplicated(df),]
,重复项将从数据框中删除。
但是如何找到重复数据的索引呢?如果duplicated
在某行返回TRUE,则表示这是该行在数据框中的第二次出现,并且可以轻松获得其索引。如何获取该行第一次出现的索引?或者,换句话说,与重复行相同的索引?
我可以在 data.frame 上做一个循环,但我认为这个问题有一个更优雅的答案。
【问题讨论】:
使用 dplyr 的好方法:***.com/a/28244567 annndrey,你为什么接受斯文的回答?它回答了完全不同的问题。 【参考方案1】:这是一个例子:
df <- data.frame(a = c(1,2,3,4,1,5,6,4,2,1))
duplicated(df) | duplicated(df, fromLast = TRUE)
#[1] TRUE TRUE FALSE TRUE TRUE FALSE FALSE TRUE TRUE TRUE
它是如何工作的?
函数duplicated(df)
确定原始数据中的重复元素。 fromLast = TRUE
表示“应从反面考虑重复”。这两个结果逻辑向量使用|
组合,因为其中至少一个中的TRUE
表示重复值。
【讨论】:
这根本不能回答问题!【参考方案2】:如果您使用的是 keyed data.table,那么您可以使用以下优雅的语法
library(data.table)
DT <- data.table(A = rep(1:3, each=4),
B = rep(1:4, each=3),
C = rep(1:2, 6), key = "A,B,C")
DT[unique(DT[duplicated(DT)]),which=T]
解压
DT[duplicated(DT)]
子集那些重复的行。
unique(...)
仅返回重复行的唯一组合。这处理超过 1 个重复的任何情况(重复的重复,例如三次重复等)
DT[..., which = T]
将重复行与原始行合并,which=T
返回行号(没有which = T
它只会返回数据)。
你也可以使用
DT[,count := .N,by = list(A,B,C)][count>1, which=T]
【讨论】:
在第二种情况下,无需设置密钥(并且在没有密钥的情况下 by 效率不低)。 我真的很喜欢这种方法,但似乎 DT[duplicated(DT)] 的结果不包括重复的第一行,例如,如果我有一个实例的三个重复项,它将只给我看其中两个。如何全部查看? 您可以使用与fromLast=TRUE
类似的方法。类似DT[unique(DT[duplicated(DT) | duplicated(DT, fromLast = TRUE)]), which = TRUE]
以上是关于mysql数据库怎么删除重复数据?如果两行的 a和b两列都一样。那么说明是重复的 删除其中一行。的主要内容,如果未能解决你的问题,请参考以下文章