Mysql
 sql >> Base de données >  >> RDS >> Mysql

SUPPRIMER tous les sujets en double avec peu de conditions

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.