sql >> Database teknologi >  >> RDS >> Mysql

Hvordan fjerner jeg dubletter af rækker i min MySQL-database? (Behold den med det laveste primære id)

Noget som dette burde virke:

DELETE FROM `table` 
WHERE `id` NOT IN (
    SELECT MIN(`id`) 
    FROM `table`
    GROUP BY `download_link`)

For at være på den sikre side, før du kører selve sletteforespørgslen, vil du måske gøre et tilsvarende valg for at se, hvad der bliver slettet:

SELECT * FROM `table` 
WHERE `id` NOT IN (
    SELECT MIN(`id`) 
    FROM `table`
    GROUP BY `download_link`)


  1. Sortering efter rækkefølgen af ​​værdier i en SQL IN()-sætning

  2. PostgreSQL:Hvorfor bruger denne forespørgsel ikke mit indeks?

  3. mysql &php:midlertidige/virtuelle id'er til forespørgselsresultater?

  4. MySQL runder datoen til starten af ​​ugen og måneden