sql >> Databasteknik >  >> RDS >> Mysql

RADERA alla dubbletter av ämnen med få villkor

I MySQL , kan du inte ange måltabellen till en DML operation i en underfråga (såvida du inte kapar den mer än en nivå djup, men i det här fallet får du inte tillförlitliga resultat och kan inte använda korrelerade underfrågor).

Använd en 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;

Skapa ett index över topics (object_id, title, topic_id) för att detta ska fungera snabbt.



  1. Hur säkerhetskopierar jag MySQL-databas i PHP?

  2. SQL Server gruppera efter antal datum och tid per timme?

  3. MYSQL auto_increment_increment

  4. Rails "var" för tid mindre än frågor