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

Sådan sletter du duplikerede rækker og opdaterer tabellen

Sådan opdaterer du ordretabellen:

update  orders
join    regions r1
on      r1.id = orders.region_id
set     orders.region_id = 
        (
        select  min(r2.id)
        from    regions r2
        where   r2.name = r1.name
        )

Derefter kan du slette duplikerede rækker med:

delete  regions
from    regions
where   id not in
        (
        select  id
        from    (
                select  min(id) as id
                from    regions
                group by
                    name
                ) as SubqueryAlias
        )

Den dobbelte underforespørgsel er påkrævet for at undgå MySQL-fejlen ERROR 1093 (HY000) at line 36: You can't specify target table 'regions' for update in FROM clause .




  1. Hvordan gør man, at en udvidelse ikke kan flyttes?

  2. Hvad er fordelene ved at have en salgsdatabase?

  3. Sådan viser du filtrerede data i JFreeChart

  4. FEJL:Kunne ikke læse række 0, kolonne -1 fra CursorWindow. Sørg for, at markøren er korrekt initialiseret, før du får adgang til data