Mysql
 sql >> Baza danych >  >> RDS >> Mysql

mysql usuwanie duplikatów danych

Możesz utworzyć tabelę z 1 rekordem każdego z duplikatów:następnie usuń wszystkie rekordy dup z tabeli osób, a następnie ponownie wstaw rekordy dup.

-- 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Schemat bazy danych dla ACL

  2. Klauzula wielokrotnego Where w MySQL

  3. Wstaw dane do tabeli za pomocą php

  4. Powolne zapytanie:znajdź różnicę między wartościami na podstawie min i max w innej kolumnie dla każdej grupy

  5. WSTAWIANIE wartości z jednej tabeli do innej tabeli