Em
MySQL
, você não pode especificar a tabela de destino para um DML
operação em uma subconsulta (a menos que você a aninhe em mais de um nível de profundidade, mas nesse caso você não obterá resultados confiáveis e não poderá usar subconsultas correlacionadas). Use um
JOIN
:DELETE td
FROM topics td
JOIN topics ti
ON ti.object_id = td.object_id
AND ti.title = td.title
AND ti.topic_id > td.topic_id;
Crie um índice em
topics (object_id, title, topic_id)
para que isso funcione rápido.