0

我有一个包含 7 个字段的表“产品”

1 Prod_id (PK)
2 Company_id
3 Name
3 Code
5 Start Date
6 End Date
7 Entry Date
8 Description

我想删除所有重复记录(匹配 2 t0 6 个重复字段)并只保留一个具有最新输入日期的记录。

mysql 中是否有任何查询来执行此任务。或者我如何使用 php 来做到这一点。

4

2 回答 2

0

您可以添加唯一索引并删除重复项

ALTER IGNORE TABLE Product
ADD UNIQUE INDEX dup_idx (Prod_id, Company_id, Name, Code,Start Date,End Date);
于 2013-10-25T11:13:00.280 回答
0

尝试这个:

我过去遇到过同样的问题并找到了这个解决方案。我提到查询如下:

DELETE FROM Product 
            USING Product, Product AS P 
            WHERE MIN(DATEDIFF(P.Entry_Date - Product.Entry_Date))
            AND Product.Company_id = P.Company_id 
            AND Product.Name = P.Name 
            AND Product.Code = P.Code;

注意:根据您的要求添加和删除字段。

谢谢

于 2013-10-25T11:22:29.493 回答