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

Menghapus Baris Duplikat di Database MySQL

Saya akan melakukannya dengan cara berikut:

  1. Buat tabel sementara dari tabel yang ada:

    CREATE TEMPORARY TABLE data_to_keep LIKE table_with_dupes_in_it
    
  2. Isi tabel temp hanya dengan catatan yang Anda inginkan:

    INSERT INTO data_to_keep
    SELECT DISTINCT * FROM table_with_dupes_in_it
    
  3. Kosongkan tabel

    TRUNCATE TABLE table_with_dupes_in_it
    
  4. Kembalikan data dari tabel temp ke tabel asli

    INSERT INTO table_with_dupes_in_it
    SELECT * FROM data_to_keep;
    
  5. Bersihkan

    DROP TEMPORARY TABLE data_to_keep
    

Harap diperhatikan bahwa ini dapat menghabiskan banyak memori dan/atau penyimpanan jika tabel yang dimaksud adalah tabel yang besar. Jika ini adalah tabel besar, saya akan cenderung menggunakan tabel nyata daripada tabel sementara agar tidak memakan banyak memori di server DB Anda.

EDIT UNTUK MENAMBAHKAN:

Jika Anda hanya khawatir tentang penipuan sebagian (baris di mana hanya beberapa data yang identik dengan data yang dimasukkan sebelumnya), maka Anda akan ingin menggunakan GROUP BY. Saat Anda menggunakan GROUP BY, Anda dapat membatasi MySQL untuk mengembalikan hanya satu baris yang berisi data yang diberikan, bukan semuanya.

SELECT *
FROM table
GROUP BY column_name

Anda juga harus mempertimbangkan untuk menggunakan indeks UNIK pada kolom yang Anda inginkan untuk tidak menyimpan data duplikat, ini akan mencegah pengguna memasukkan data duplikat.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. dapatkah saya menggunakan variabel untuk menentukan OUTFILE di mysql

  2. Bagaimana memilih semua baris tabel HTML

  3. Paksa string yang tepat MATCH untuk pernyataan yang disiapkan PDO

  4. MySQL - Perbarui dengan penghitung berdasarkan subquery

  5. Bagaimana mengkonversi Hasil yang diatur ke Json di MYSQL