【发布时间】:2015-02-20 13:20:39
【问题描述】:
我有一个包含大约 11 个字段(列)的表,我知道有多个重复条目,但它们只在几个字段中重复。我想要做的是,如果两行或多行具有相同的小写ProviderName 和Address,以及相同的StateID,那么我想删除那些额外的行,只留下一份副本。我有类似的东西,但我不知道如何完成它。
SET SQL_SAFE_UPDATEs=0;
DELETE FROM providers
WHERE LCASE(ProviderName), LCASE(Address), StateID;
更新:
SET SQL_SAFE_UPDATES=0;
DELETE p1.*
FROM providers AS p1
JOIN providers AS p2
ON LCASE(p1.ProviderName) = LCASE(p2.ProviderName)
AND LCASE(p1.Address) = LCASE(p2.Address)
AND p1.Zip = p2.Zip
AND p1.StateID = p2.StateID
AND p1.ProviderId > p2.ProviderId
【问题讨论】:
标签: mysql