我正在尝试从数据库中删除重复数据。我找到了a nice example on here of how to do this on an oracle database。
该答案的底部查询(仅选择重复的行)在MySQL中有效,但删除查询(见下文)不...
"DELETE FROM studios as a
WHERE a.id >
ANY (SELECT b.id
FROM studios as b
WHERE a.name = b.name
AND a.email = b.email
)"
我得到的错误是:
You have an error in your SQL syntax; check the manual that corresponds to your
MySQL server version for the right syntax to use near 'a
WHERE a.id >
ANY (SELECT b.id
FROM studios as b
' at line 1
所以,我找了一个正确的delete syntax和any syntax来使用,但找不到我的查询有什么问题......有什么想法吗?
答案 0 :(得分:2)
尝试此查询 -
DELETE t1 FROM studios t1
JOIN (SELECT MIN(id) id, name, email FROM studios GROUP BY name, email) t2
ON t1.id <> t2.id AND t1.name = t2.name AND t1.email = t2.email;
答案 1 :(得分:0)
AS
运算符不适用于MySQL中的DELETE
语句。
试试这个(未经证实):
DELETE FROM a using studios a
WHERE a.id >
ANY
(
SELECT b.id
FROM studios as b
WHERE a.name = b.name
AND a.email = b.email
)