Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Perbaiki entri duplikat DB (bug MySQL)

Untuk membuat daftar semua anomali:

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

Ada beberapa cara untuk mengatasi penghapusan penipuan dan jalur Anda akan sangat bergantung pada jumlah penipuan yang Anda miliki.

Lihat ini JADI pertanyaan tentang cara menghapusnya dari tabel Anda.

Inilah solusi yang saya berikan di sana:

-- 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. Bagaimana cara memaksa nama tabel peka huruf besar-kecil?

  2. Tampilkan semua tabel di dalam database MySQL menggunakan PHP?

  3. Mendapatkan lebih banyak baris per grup menggunakan groupBy di Eloquent

  4. Bagaimana cara mendapatkan rata-rata hits antara tanggal saat ini ke tanggal yang diposting di MySQL?

  5. Mysql tidak memulai dalam wadah buruh pelabuhan di MacOS setelah pembaruan buruh pelabuhan