Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Memadam Baris Pendua dengan Cekap dalam MySQL Semasa Menyimpan Satu Rekod?

Bagaimanakah Saya Boleh Memadam Baris Pendua dengan Cekap dalam MySQL Semasa Menyimpan Satu Rekod?

Barbara Streisand
Lepaskan: 2025-01-23 13:37:10
asal
687 orang telah melayarinya

How Can I Efficiently Delete Duplicate Rows in MySQL While Keeping One Record?

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

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