sql >> Base de Datos >  >> RDS >> Mysql

ELIMINAR todos los temas duplicados con pocas condiciones

En MySQL , no puede especificar la tabla de destino a un DML operación en una subconsulta (a menos que la anide a más de un nivel de profundidad, pero en este caso no obtendrá resultados confiables y no podrá usar subconsultas correlacionadas).

Usa 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;

Crear un índice sobre topics (object_id, title, topic_id) para que esto funcione rápido.