Reputation: 819
I use a temporary table t
with these queries in order to delete duplicated rows from comment
table:
CREATE TABLE t (
id INT NOT NULL,
hash BINARY(20),
PRIMARY KEY(id),
INDEX(hash) ) ENGINE=InnoDB;
INSERT INTO t (id, hash)
SELECT id, UNHEX(SHA1(body))
FROM `comment`;
DELETE FROM `comment`
USING t AS t1,
t AS t2
WHERE t1.id = comment.id
AND t2.hash = t1.hash AND t2.id < t1.id;
But at delete stage, I get this error:
ERROR 1109 (42S02): Unknown table 'comment' in MULTI DELETE
How can I fix it?
Upvotes: 0
Views: 2308
Reputation: 1269873
MySQL doesn't support USING
in DELETE
. I think you want:
DELETE c
FROM `comment` c JOIN
t t1
ON t1.id = c.id JOIN
t t2
ON t2.hash = t1.hash AND t2.id < t1.id;
I suspect there are simpler ways to express this logic. Perhaps you should ask another question, with sample data, desired results, and an explanation of the logic you are implementing.
Upvotes: 1