如何在MYSQL数据库中删除类似的重复项

时间:2016-12-12 11:09:56

标签: mysql sql

我需要删除一些"类似的" db中的行。

barcode   name    COL3
1234      item1   price10$
1234      item1   price50$
5678      item2   price10$

如何从db中删除#2(50dlls)?

我尝试使用MINMAXDISTINCTWHERE条款,但没有。

3 个答案:

答案 0 :(得分:0)

最简单的方法是创建一个没有第一个重复项的新表。然后,您可以删除旧表并重命名新表。

create table new_table as
select barcode, name, min(col3) as col3
from old_table
group by barcode, name;

答案 1 :(得分:0)

您可以使用delete

执行此操作
delete t
    from t join
         (select barcode, name, min(col3) as mincol3
          from t
          group by barcode, name)
         ) tt
         on t.barcode = tt.barcode and t.name = tt.name and t.col3 > tt.mincol3 ;

这假设mincol3是唯一的,并且表格不是太大。最快的方法可能是truncate和重新insert

create temporary table tt as
    select barcode, name, min(col3) as col3
    from t
    group by barcode, name;

truncate table t;

insert into t(barcode, name, col3)
    select barcode, name, col3
    from tt;

答案 2 :(得分:0)

这是最终结果。 thx to all。

SELECT COL1,COL2,MIN(COL22)AS“最低”,COL3,COL4 FROM table1 COL BY GROUP1

现在我拥有所有产品。重要的“分组”