如图person表中,要删除重复邮箱的数据,
出现问题的sql:
DELETE
FROM
person
WHERE
id IN
(
SELECT
p1.id id
FROM
person p1,
person p2
WHERE
p1.id > p2.id
AND p1.Email = p2.Email
)
mysql中不支持对查询修改,即对查询结果进行修改
解决方法;将查询结果进行临时表转化即可:
DELETE
FROM
person
WHERE
id IN (
SELECT
temp.id
FROM
(
SELECT
p1.id id
FROM
person p1,
person p2
WHERE
p1.id > p2.id
AND p1.Email = p2.Email
) temp
)
解决成功