sql >> Database >  >> RDS >> Mysql

verwijder dubbele rijen op basis van één kolomwaarde

Dit is vergelijkbaar met de zoekopdracht van Gordon Linoff, maar zonder de subquery:

DELETE t1 FROM table t1
  JOIN table t2
  ON t2.refID = t1.refID
  AND t2.ID < t1.ID

Dit gebruikt een inner join om alleen rijen te verwijderen als er nog een rij is met dezelfde refID maar met een lagere ID.

Het voordeel van het vermijden van een subquery is dat u een index kunt gebruiken voor de zoekopdracht. Deze zoekopdracht zou goed moeten presteren met een index met meerdere kolommen op refID + ID.



  1. Gebruik MySQL relationele databases op CentOS 5.

  2. PostgreSQL gebruikt geen gedeeltelijke index

  3. Hoe voeg je in elke link (a href) een rel-attribuut toe met behulp van php?

  4. Hoe kan ik een JSON-object in Postgres invoegen met behulp van Java PreparedStatement?