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.