从表中删除重复记录
我在MySQL中有一个名为ZipCode的表,它的字段是:id,zipcode,city,state。它有一些重复的记录;一些邮编显示两次 我想删除所有即将到来的邮编,每个邮政编码只能存储一次。 我如何使它正确?从表中删除重复记录
这组三个查询将删除所有重复:
CREATE TABLE new_table AS SELECT * FROM old_table WHERE 1 GROUP BY zip;
DROP TABLE old_table;
RENAME TABLE new_table TO old_table;
并且不要忘记在此之后重新创建索引和约束:) – arnaud576875
...并且在新表上引入主键约束以预先发泄复发, –
是的,没错。而且,修复插入重复项的代码,让它检查它插入的行是否是唯一的。 – EdoDodo
-- remove duplicates
DELETE z1
FROM ZipCode z1, ZipCode z2
WHERE z1.zipcode = z2.zipcode AND z2.id < z1.id;
-- add a primary key
ALTER TABLE ZipCode ADD PRIMARY KEY (zipcode);
-- or a unique key
ALTER TABLE ZipCode ADD UNIQUE INDEX zipcode_unique (zipcode);
+1不用于创建新表格。 –
试试这个它的做工精细
DELETE
FROM
insurance_policy_customers ipc
WHERE
ipc.id NOT IN (SELECT
min(ipc.id)
FROM
insurance_policy_customers ipc
GROUP BY
ipc.resident_insurance_policy_id)
可能[删除重复记录的SQL(HTTP重复://计算器.com/questions/841447/delete-duplicate-sql-records) – Bohemian