In MySQL
, können Sie die Zieltabelle nicht in einer DML
angeben Operation in einer Unterabfrage (es sei denn, Sie verschachteln sie mehr als eine Ebene tief, aber in diesem Fall erhalten Sie keine zuverlässigen Ergebnisse und können keine korrelierten Unterabfragen verwenden).
Verwenden Sie ein 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;
Erstellen Sie einen Index zu topics (object_id, title, topic_id)
damit dies schnell funktioniert.