1、-- 删除重复行,且保留最高的id: 因为删除的是a表的中的id小于b表中的。
DELETE a
FROM
contacts a
INNER JOIN contacts b
WHERE
<
AND a.email = b.email;
2、-- 删除重复行,且保留最小的id: 因为删除的是a表的中的id大于b表中的。
DELETE a
FROM
contacts a
INNER JOIN contacts b
WHERE
>
AND a.email = b.email;
3、第三种删除重复行的方式
-- step 1、创建一个表
CREATE TABLE contacts_temp LIKE contacts;
-- step 2、插入contacts中不重复的数据
INSERT INTO contacts_temp(email) SELECT email FROM contacts GROUP BY email;
-- step 3、删除原表contacts
DROP TABLE contacts;
-- step 4、将新建的表contacts_temp的名称修改为原表的名称
ALTER TABLE contacts_temp RENAME TO contacts;