En MySQL
, no puede especificar la tabla de destino a un DML
operación en una subconsulta (a menos que la anide a más de un nivel de profundidad, pero en este caso no obtendrá resultados confiables y no podrá usar subconsultas correlacionadas).
Usa un 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;
Crear un índice sobre topics (object_id, title, topic_id)
para que esto funcione rápido.