W MySQL
, nie można określić tabeli docelowej jako DML
operacja w podzapytaniu (chyba że zagnieździsz ją o więcej niż jeden poziom głębiej, ale w tym przypadku nie uzyskasz wiarygodnych wyników i nie będziesz mógł używać skorelowanych podzapytań).
Użyj 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;
Utwórz indeks na topics (object_id, title, topic_id)
aby to działało szybko.