Rumah > pangkalan data > tutorial mysql > Bagaimana Mengeluarkan Baris Pendua dengan Cekap dari Jadual MySQL Semasa Memelihara Satu Contoh?

Bagaimana Mengeluarkan Baris Pendua dengan Cekap dari Jadual MySQL Semasa Memelihara Satu Contoh?

Patricia Arquette
Lepaskan: 2025-01-23 13:31:14
asal
744 orang telah melayarinya

How to Efficiently Remove Duplicate Rows from a MySQL Table While Preserving a Single Instance?

Mengalih Keluar Baris Pendua dalam MySQL dengan cekap

Senario: Baris pendua dalam jadual MySQL boleh timbul daripada pelbagai sumber, termasuk ralat kemasukan data. Mengalih keluar pendua ini adalah penting untuk mengekalkan integriti data dan prestasi pangkalan data yang optimum.

Masalah: Cabarannya terletak pada memadamkan semua kecuali satu tika bagi setiap baris pendua.

Penyelesaian & Langkah Berjaga-jaga:

Nota Kritikal: Sentiasa sandarkan jadual anda sebelum melaksanakan sebarang pertanyaan PADAM. Pernyataan DELETE yang dilaksanakan secara tidak betul boleh menyebabkan kehilangan data yang tidak dapat dipulihkan.

Kaedah 1: Mengekalkan Baris dengan ID Terendah

Pendekatan ini mengekalkan baris dengan nilai ID terkecil:

<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

Kaedah 2: Mengekalkan Baris dengan ID Tertinggi

Alternatif ini mengekalkan baris yang mempunyai nilai ID terbesar:

<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

Kecekapan Dipertingkatkan untuk Meja Besar:

Untuk jadual yang sangat besar, kaedah INSERT ... SELECT DISTINCT berikut menyediakan penyelesaian yang lebih cekap:

<code class="language-sql">CREATE TEMPORARY TABLE tempTableName AS
SELECT DISTINCT cellId, attributeId, entityRowId, value
FROM tableName;

TRUNCATE TABLE tableName;

INSERT INTO tableName SELECT * FROM tempTableName;

DROP TEMPORARY TABLE tempTableName;</code>
Salin selepas log masuk

Ini mencipta jadual sementara yang mengandungi hanya baris unik, memotong jadual asal dan kemudian mengisinya dengan data unik daripada jadual sementara. Ini biasanya lebih pantas daripada menggunakan DELETE untuk set data yang besar. Ingat untuk menggantikan tableName, cellId, attributeId, entityRowId dan value dengan nama lajur sebenar anda.

Atas ialah kandungan terperinci Bagaimana Mengeluarkan Baris Pendua dengan Cekap dari Jadual MySQL Semasa Memelihara Satu Contoh?. 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