使用相同 table 中的 EXISTS 从 TABLE 中删除

DELETE from TABLE using EXISTS from the same table

我有重复的 MYSQL 表。我想删除重复项。但是 MySQL 给出了错误信息。 MYSQL 和 MARIA DB 是否不支持在 Oracle 上 运行 的 SQL 语句?

从存在的爱沙尼亚 E 删除(select 1 从爱沙尼亚 x 其中 x.city=E.city 和 x.id<>E.id);

您可以改为使用删除自联接:

DELETE e1
FROM ESTONIA e1
INNER JOIN ESTONIA e2
    ON e2.city = e1.city AND
       e2.id <> e1.id; 

存在确实存在于 MySQL 见下文

SELECT column_name(s)
FROM table_name
WHERE EXISTS
(SELECT column_name FROM table_name WHERE condition);

来源Click Here

但我相信在你的情况下你需要使用 IN 而不是 EXIST

DELETE 
 FROM table_name
 WHERE column_name IN
(SELECT column_name FROM table_name WHERE condition);