2013-10-25 46 views
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。

+0

你已經試過了嗎? –

+0

有辦法做到這一點,但你做了什麼? – bksi

回答

0

您可以添加一個唯一索引,並與

ALTER IGNORE TABLE Product 
ADD UNIQUE INDEX dup_idx (Prod_id, Company_id, Name, Code,Start Date,End Date); 
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; 

注意:添加&刪除字段根據您的要求。

謝謝

+0

是的。它的工作正常。但它保持最後的記錄不重複。我怎樣才能得到入境日期接近當前日期的記錄? –

+0

Nops ..!作爲組功能的無效使用,發生givin錯誤。 –

+0

試試此查詢。我修改了它。上次錯誤修改。 –