En MySQL , vous ne pouvez pas spécifier la table cible à un DML opération dans une sous-requête (sauf si vous l'imbriquez à plus d'un niveau, mais dans ce cas, vous n'obtiendrez pas de résultats fiables et ne pourrez pas utiliser de sous-requêtes corrélées).
Utiliser 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;
Créer un index sur topics (object_id, title, topic_id) pour que cela fonctionne rapidement.