sql >> Databáze >  >> RDS >> Mysql

Jak odstranit duplicitní řádky z tabulky MySQL

DELETE DupRows.*
FROM MyTable AS DupRows
   INNER JOIN (
      SELECT MIN(ID) AS minId, col1, col2
      FROM MyTable
      GROUP BY col1, col2
      HAVING COUNT(*) > 1
   ) AS SaveRows ON SaveRows.col1 = DupRows.col1 AND SaveRows.col2 = DupRows.col2
      AND SaveRows.minId <> DupRows.ID;

Samozřejmě musíte rozšířit col1, col2 na všech třech místech do všech sloupců.

Edit:Právě jsem to vytáhl ze skriptu, který si uchovávám, a znovu otestoval, spouští se v MySQL.



  1. Nelze najít microsoft.sqlserver.batchparser.dll

  2. mysql - Optimalizace ORDER BY COALESCE na spojeném sloupci tabulky

  3. IllegalStateException:databáze již uzavřena (pomocí ViewPager)

  4. Jak ASIN() funguje v MariaDB