首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我正在寻找SQL代码,将删除重复的地方定义为两个特定字段的相等

我正在寻找SQL代码,将删除重复的地方定义为两个特定字段的相等
EN

Stack Overflow用户
提问于 2018-08-19 11:22:14
回答 3查看 78关注 0票数 0

我有一个有5个字段的MySql数据库。有两个关键字段,Cfield1和CField2。如果对于任何两个条目,Cfield1的值都是相同的,并且Cfield2的值也是相同的,那么我想删除这两个条目中的一个--不管是哪一个。

如果有三个是相同的,我希望只保留一个,并删除其余的。

我假设要做的第一件事是对Cfield1上的数据库进行排序,然后是Cfield2,但我不确定其余的编码应该是什么。

EN

回答 3

Stack Overflow用户

发布于 2018-08-19 11:27:05

假设您有另一个列--比如col3 --可以区分重复的行。然后您可以执行以下操作:

代码语言:javascript
复制
delete t
    from t t join
         (select cfield1, cfield2, min(col3) as min_col3
          from t
          group by cfield1, cfield2
         ) tt
         using (cfield1, cfield2)
    where t.col3 > tt.min_col3;

如果您没有这样的列,那么我建议您创建一个新表。下面的代码使用了一个几乎完全不鼓励使用的MySQL特性,但它应该能做你想要的事情:

代码语言:javascript
复制
create table temp_t as
    select t.*
    from t
    group by col1, col2;

truncate table t;  -- be very careful here, copy the data somewhere else first!

insert into t
    select *
    from temp_t;
票数 1
EN

Stack Overflow用户

发布于 2018-08-19 14:08:56

必须同时使用count (*)和group by:

代码语言:javascript
复制
select count (*),DuplicateField from table
group by  DuplicateField
having count (*)>1

因此,您将获得记录。或者,如果你想删除,我可以用我的例子告诉你:

代码语言:javascript
复制
select 
    'RepetedRows',
    SA.Saleref,
    MIN(CAST(SA.SaleAdditionID  as varchar(100)) ),
    'DELETE sms.tblsaleadditions    WHERE SaleAdditionID = ''' + MIN(CAST(SA.SaleAdditionID as varchar(100)) ) + ''''
    --select * 
from 
    sms.tblsaleadditions    SA
inner join (
    select
        saleref,
        additionref,
        count(*)    N,
        SUM(AdditionAmount) nn
    from 
        sms.tblsaleadditions
    group by 
        saleref,
        additionref
    having count(*) > 1
    ) V ON SA.saleref = V.Saleref and SA.additionref = V.additionref 
group by 
    SA.Saleref

现在,您可以复制所有delete语句并运行它们。

票数 0
EN

Stack Overflow用户

发布于 2018-08-21 00:30:35

这在MySQL查询中是什么?我们有这个要求,但是现有的数据库是MySQL。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51914166

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档