我有一个包含 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 来做到这一点。
您可以添加唯一索引并删除重复项
ALTER IGNORE TABLE Product
ADD UNIQUE INDEX dup_idx (Prod_id, Company_id, Name, Code,Start Date,End Date);
尝试这个:
我过去遇到过同样的问题并找到了这个解决方案。我提到查询如下:
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;
注意:根据您的要求添加和删除字段。
谢谢