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

odstranit duplicitní položky v tabulce

Jedním ze způsobů, jak toho dosáhnout, je připojení tabulky v dílčím dotazu pomocí LEFT JOIN . Poddotaz získá nejnižší ID pro každé UID . Když záznam v poddotazu nemá shodu, znamená to pouze, že nemá žádný odpovídající záznam a lze jej bezpečně smazat.

DELETE  a
FROM    TableName a
        LEFT JOIN
        (
            SELECT  uid, MIN(ID) min_ID
            FROM    TableName
            GROUP   BY uid
        ) b ON  a.uid = b.uid AND
                a.ID = b.min_ID
WHERE   b.uid IS NULL

Pokud však záznamy UID může mít jiný název, pak musíte uvést name na group by klauzule nebo jinak pouze jedinečné uid s nejnižším ID zůstane.

DELETE  a
FROM    TableName a
        LEFT JOIN
        (
            SELECT  uid, MIN(ID) min_ID, name
            FROM    TableName
            GROUP   BY uid, name
        ) b ON  a.uid = b.uid AND
                a.ID = b.min_ID AND
                a.name = b.name
WHERE   b.uid IS NULL


  1. Jak zacházet se starší databází v rámci Django

  2. Řazení/řazení v MySQL

  3. Adminer – Pokročilý nástroj pro správu webových databází pro Linux

  4. Převeďte soubor BibTex na záznamy databáze pomocí Pythonu