MySQL:什么是从MySQL表中删除重复行的最安全的方法?
我有一个MySQL表。它包含我们从数据馈送中获得的邮寄地址。但是,邮寄地址没有客户记录,所以我没有简单的方法将客户记录作为关键字查看它是否已经存在于主表中。因此,我决定将新的每日数据Feed添加到主TABLE中,然后删除重复项。MySQL:什么是从MySQL表中删除重复行的最安全的方法?
删除重复项最安全的方法是什么?很明显,我想忽略ID列字段。但我怎么做以下字段:
company_name
contact_name
address1
address2
address3
city
state
zipcode
phone_number
email_address
如果我重建MySQL表包括ALTER TABLE具有独特的KEY,那会是安全的吗?例如:
ALTER TABLE people ADD UNIQUE KEY (company_name,contact_name,address1,address2,address3,city,state,zipcode,phone_number,email_address)
上述内容是否安全地防止重复记录被插入以开头?
谢谢!
这是最简单的查询您可以使用 根据您的要求选择最大或最小。
DELETE
FROM MyTable
WHERE ID NOT IN
(
SELECT MAX(ID)
FROM MyTable
GROUP BY DuplicateColumn1, DuplicateColumn2, DuplicateColumn3)
感谢
请看我添加的示例使用ALTER TABLE人添加唯一键。我很想知道你的想法。谢谢! – Edward 2013-05-06 09:23:05
中DELETE FROM测试 LEFT JOIN ( SELECT MIN(ID)为ID,COMPANY_NAME,CONTACT_NAME,地址1,地址,2地址,城市,州,邮编,PHONE_NUMBER,EMAIL_ADDRESS FROM test GROUP BY company_name,contact_name,address1,address2,address3,city,state,zipcode,phone_number,email_address )b ON a.id = b.id AND a.company_name = b.company_name AND a.contact_name = b .contact_name AND a.address1 = b.address1 AND a.address2 = b.address2 AND a.address3 = b.address 3 AND a.city = b.city AND a.state = b.state AND a.zipcode = b.zipcode AND a.phone_number = b.phone_number AND a.email_address = b.email_address WHERE b.id IS NULL
请格式正确 – SSP 2013-10-22 12:14:17
你能提供更多样本记录吗? – 2013-05-06 09:09:50
Wloud您可以通过重复来定义您的意思吗? – bksi 2013-05-06 09:10:17
http://stackoverflow.com/questions/14816863/what-is-the-best-way-to-delete-duplicate-values-from-mysql-table试试这个 – Stvdd 2013-05-06 09:10:58