Panduan Mengalih Keluar Baris Pendua MySQL: Kekalkan Rekod Unik dengan Cekap
Artikel ini menerangkan cara mengalih keluar data pendua daripada jadual MySQL dan mengekalkan satu rekod daripada setiap set data pendua. Walaupun ada kemungkinan untuk menapis nilai unik menggunakan SELECT DISTINCT
, artikel ini memfokuskan pada cara mencapai ini menggunakan perintah DELETE
.
Petua Penting:
Pastikan anda membuat sandaran jadual anda sebelum melakukan sebarang operasi pemadaman untuk mengelakkan kehilangan data secara tidak sengaja.
Simpan rekod dengan ID terkecil:
Untuk mengekalkan baris dengan ID terkecil antara pendua, jalankan pernyataan SQL berikut:
<code class="language-sql">DELETE n1 FROM names n1, names n2 WHERE n1.id > n2.id AND n1.name = n2.name;</code>
Simpan rekod dengan ID terbesar:
Untuk mengekalkan baris dengan ID terbesar antara pendua, jalankan pernyataan SQL berikut:
<code class="language-sql">DELETE n1 FROM names n1, names n2 WHERE n1.id < n2.id AND n1.name = n2.name;</code>
Nota lain:
Amaran kecekapan:
Kaedah di atas tidak cekap dan boleh menyebabkan beban sambungan pangkalan data.
Keperluan integriti:
MESTI mengandungi klausa AND n1.id < n2.id
(atau AND n1.id > n2.id
). Mengabaikan syarat ini boleh menyebabkan semua baris dalam jadual dipadamkan.
Alternatif:
Untuk prestasi yang lebih baik, pertimbangkan untuk menggunakan pertanyaan INSERT
dan DISTINCT
berikut:
<code class="language-sql">INSERT INTO tempTableName (cellId, attributeId, entityRowId, value) SELECT DISTINCT cellId, attributeId, entityRowId, value FROM tableName;</code>
Anda kemudian boleh memadamkan jadual asal dan menamakan semula jadual sementara. Kaedah ini mengelakkan pemadaman terus data, dengan itu meningkatkan kecekapan dan keselamatan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memadam Baris Pendua dengan Cekap dalam MySQL Semasa Menyimpan Satu Rekod?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!