Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mengeluarkan Rekod Pendua dari Jadual MySQL dengan Cekap Tanpa Menggunakan Jadual Sementara?

Bagaimana untuk Mengeluarkan Rekod Pendua dari Jadual MySQL dengan Cekap Tanpa Menggunakan Jadual Sementara?

Barbara Streisand
Lepaskan: 2024-12-31 12:48:11
asal
927 orang telah melayarinya

How to Remove Duplicate Records from a MySQL Table Efficiently Without Using Temporary Tables?

Cara Memadam Rekod Pendua daripada Jadual MySQL tanpa Jadual Sementara

Dalam konteks integriti data, berurusan dengan rekod pendua boleh menjadi satu tugas yang membingungkan. Pertimbangkan senario di mana jadual, JadualA, mengandungi berbilang entri yang sama disebabkan penyerahan dua kali secara tidak sengaja. Cabaran timbul apabila anda perlu membersihkan pendua ini sambil mengekalkan sekurang-kurangnya satu baris unik.

Pendekatan INDEKS UNIK:

Satu kaedah yang berkesan ialah menambah indeks unik pada lajur yang berkaitan:

ALTER IGNORE TABLE `TableA`
ADD UNIQUE INDEX (`member_id`, `quiz_num`, `question_num`, `answer_num`);
Salin selepas log masuk

Indeks ini menguatkuasakan keunikan pada lajur yang ditentukan, memastikan tiada gabungan pendua boleh wujud. Akibatnya, percubaan untuk memasukkan rekod yang sama akan ditolak oleh pangkalan data.

Pendekatan Kunci Utama:

Sebagai alternatif, anda boleh memperkenalkan kunci utama dalam jadual. Kunci utama ialah pengecam unik yang membezakan setiap baris. Dengan menambahkannya pada struktur jadual sedia ada anda, anda boleh melaksanakan:

DELETE FROM member
WHERE id IN (SELECT *
             FROM (SELECT id FROM member
                   GROUP BY member_id, quiz_num, question_num, answer_num HAVING (COUNT(*) > 1)
                  ) AS A
            );
Salin selepas log masuk

Pertanyaan ini mengenal pasti dan mengalih keluar baris pendua dengan membandingkan kiraan kumpulan mereka dan baris penyasaran dengan kiraan yang lebih besar daripada 1. Lajur id boleh mewakili sama ada kunci utama sedia ada anda atau kunci baharu yang ditambahkan semata-mata untuk tujuan ini.

Kedua-dua pendekatan menyediakan penyelesaian yang cekap kepada masalah rekod pendua dalam jadual MySQL anda, membolehkan anda mengekalkan integriti data tanpa memerlukan jadual sementara.

Atas ialah kandungan terperinci Bagaimana untuk Mengeluarkan Rekod Pendua dari Jadual MySQL dengan Cekap Tanpa Menggunakan Jadual Sementara?. 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