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

Ret DB-duplikerede poster (MySQL-fejl)

Sådan angiver du alle uregelmæssighederne:

SELECT name, count(*) FROM TableA GROUP BY name HAVING count(*) > 1;
 

Der er et par måder at tackle sletning af dups, og din vej vil afhænge meget af antallet af dups du har.

Se dette SÅ spørgsmål til måder at fjerne dem fra dit bord.

Her er den løsning, jeg gav der:

-- Setup for example create table people (fname varchar(10), lname varchar(10)); insert into people values ('Bob', 'Newhart'); insert into people values ('Bob', 'Newhart'); insert into people values ('Bill', 'Cosby'); insert into people values ('Jim', 'Gaffigan'); insert into people values ('Jim', 'Gaffigan'); insert into people values ('Adam', 'Sandler'); -- Show table with duplicates select * from people; -- Create table with one version of each duplicate record create table dups as select distinct fname, lname, count(*) from people group by fname, lname having count(*) > 1; -- Delete all matching duplicate records delete people from people inner join dups on people.fname = dups.fname AND people.lname = dups.lname; -- Insert single record of each dup back into table insert into people select fname, lname from dups; -- Show Fixed table select * from people;

  1. Strenger automatisk objekt ved indsættelse i en MySQL JSON-kolonne med knex

  2. Fejl under afsendelse af QUERY-pakke

  3. Opdater flere rækker med flere 'where'-sætninger for hver enkelt række

  4. Tøm IN-klausulparameterliste i MySQL