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

Hapus Baris Duplikat di MySQL (Abaikan Kunci Utama)

Contoh berikut menghapus baris duplikat di MySQL sambil mengabaikan kunci utama atau kolom pengenal unik.

Contoh menghapus baris duplikat tetapi menyimpannya. Jadi dalam kasus dua baris yang identik, itu menghapus salah satunya dan menyimpan yang lain.

Contoh Data

Misalkan kita memiliki tabel dengan data berikut:

SELECT * FROM Dogs;

Hasil:

+---------+-------------+------------+
| DogId   | FirstName   | LastName   |
|---------+-------------+------------|
| 1       | Bark        | Smith      |
| 2       | Bark        | Smith      |
| 3       | Woof        | Jones      |
| 4       | Ruff        | Robinson   |
| 5       | Wag         | Johnson    |
| 6       | Wag         | Johnson    |
| 7       | Wag         | Johnson    |
+---------+-------------+------------+

Kita dapat melihat bahwa dua baris pertama adalah duplikat, dan tiga baris terakhir adalah duplikat.

Temukan Duplikatnya

Pertama, mari kita pilih check tabel kita untuk melihat berapa banyak baris yang duplikat:

SELECT 
    FirstName, 
    LastName, 
    COUNT(*) AS Count
FROM Dogs
GROUP BY FirstName, LastName
HAVING COUNT(*) > 1;

Hasil:

+-----------+----------+-------+
| FirstName | LastName | Count |
+-----------+----------+-------+
| Bark      | Smith    |     2 |
| Wag       | Johnson  |     3 |
+-----------+----------+-------+

Kita dapat melihat bahwa ada dua baris dengan Bark Smith, dan tiga baris dengan Wag Johnson.

Kami akan menghilangkan penipuan pada tabel sehingga hanya berisi satu dari masing-masing tabel.

Hapus Duplikat

Menjalankan kode berikut menghilangkan penipuan tabel di atas:

DELETE d1 FROM Dogs d1
INNER JOIN Dogs d2
WHERE
    d1.DogId < d2.DogId AND
    d1.FirstName = d2.FirstName AND
    d1.LastName = d2.LastName;

Hasil:

Query OK, 3 rows affected (0.00 sec)

Mari kita lihat hasilnya:

SELECT * FROM Dogs;

Hasil:

+-------+-----------+----------+
| DogId | FirstName | LastName |
+-------+-----------+----------+
|     2 | Bark      | Smith    |
|     3 | Woof      | Jones    |
|     4 | Ruff      | Robinson |
|     7 | Wag       | Johnson  |
+-------+-----------+----------+

Kami telah berhasil menghapus baris duplikat dari tabel.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menyimpan dan menampilkan string unicode (हिन्दी) menggunakan PHP dan MySQL

  2. Apa operator <=> ini di MySQL?

  3. Bagaimana cara menyimpan alamat yang kompatibel dengan IPv6 dalam database relasional

  4. Cara Menampilkan Susunan Koneksi Anda di MySQL

  5. Menggunakan variabel dalam klausa LIMIT di MySQL