Trong MySQL
, bạn không thể chỉ định bảng đích cho một DML
hoạt động trong một truy vấn con (trừ khi bạn lồng nó sâu hơn một cấp, nhưng trong trường hợp này, bạn sẽ không nhận được kết quả đáng tin cậy và không thể sử dụng các truy vấn con tương quan).
Sử dụng 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;
Tạo chỉ mục về các chủ đề topics (object_id, title, topic_id)
để điều này hoạt động nhanh chóng.