在SQL中删除重复项

时间:2019-08-01 21:21:43

标签: mysql sql duplicates

我有一个包含3列的表格-product_name,product_id和条形码。 所有行都有不同的名称,ID为ID,但有些行有重复的条形码,我需要通过计数来查找重复的代码,但是我不知道如何删除它们。

我正在使用MySQL工作台。

SELECT product_name, product_id, barcode, COUNT(barcode) FROM products.a GROUP BY barcode HAVING COUNT(barcode) > 1;

应该删除重复的条形码。

1 个答案:

答案 0 :(得分:0)

您可以将joindelete一起使用。例如,删除除最大ID外的所有ID:

delete p
    from products p join
         (select barcode, max(product_id) as max_product_id
          from products p
          group by barcode
         ) pp
         on pp.barcode = p.barcode and pp.product_id < pp.max_product_id;