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:
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>
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>
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:
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>
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!