Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Memadam Baris Pendua dalam MySQL Semasa Menyimpan Satu?

Bagaimana untuk Memadam Baris Pendua dalam MySQL Semasa Menyimpan Satu?

Barbara Streisand
Lepaskan: 2025-01-23 13:26:10
asal
419 orang telah melayarinya

How to Delete Duplicate Rows in MySQL While Keeping One?

Cara mengalih keluar baris pendua daripada MySQL (simpan satu baris)

Deduplikasi adalah penting apabila mengekalkan pangkalan data yang bersih dan cekap. Walaupun memilih nilai unik menggunakan pertanyaan seperti SELECT DISTINCT adalah mudah, mengalih keluar pendua melalui operasi DELETE memerlukan pendekatan yang sedikit berbeza.

Gunakan DELETE untuk mengalih keluar pendua

Untuk mengalih keluar baris pendua daripada jadual sambil menyimpan salinan, anda boleh menggunakan dua DELETE variasi pertanyaan:

  1. Kekalkan baris dengan nilai ID terendah:

    <code class="language-sql">DELETE n1 FROM names n1, names n2
    WHERE n1.id > n2.id AND n1.name = n2.name</code>
    Salin selepas log masuk
  2. Kekalkan baris dengan nilai ID tertinggi:

    <code class="language-sql">DELETE n1 FROM names n1, names n2
    WHERE n1.id < n2.id AND n1.name = n2.name</code>
    Salin selepas log masuk

Perhatikan bahawa pertanyaan ini menggunakan cantuman dalaman (JOIN) untuk membandingkan baris berdasarkan lajur name. Mereka kemudiannya mengenal pasti dan mengalih keluar baris pendua berdasarkan syarat bahawa satu baris mempunyai nilai ID yang lebih tinggi atau lebih rendah daripada baris lain.

Nota:

  • Pastikan anda membuat salinan ujian jadual sebelum melaksanakan pertanyaan ini, kerana ia mungkin memadamkan semua baris jika digunakan secara salah.
  • Memasukkan syarat AND n1.id != n2.id dalam pertanyaan memastikan baris tidak dipadamkan jika mereka mempunyai nama yang sama tetapi nilai ID yang berbeza.

Alternatif untuk menggunakan INSERT:

Untuk jadual yang lebih besar, menggunakan DISTINCT dengan INSERT ialah cara yang lebih cekap untuk mengalih keluar pendua.

<code class="language-sql">INSERT INTO tempTableName(cellId, attributeId, entityRowId, value)
SELECT DISTINCT cellId, attributeId, entityRowId, value
FROM tableName;</code>
Salin selepas log masuk

Kaedah ini mencipta jadual baharu yang mengandungi hanya nilai unik, dengan berkesan mengalih keluar pendua.

Atas ialah kandungan terperinci Bagaimana untuk Memadam Baris Pendua dalam MySQL Semasa Menyimpan Satu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan