Rumah > pangkalan data > tutorial mysql > Bagaimana untuk mengalih keluar Baris Pendua dari Jadual MySQL Tanpa Menggunakan Jadual Sementara?

Bagaimana untuk mengalih keluar Baris Pendua dari Jadual MySQL Tanpa Menggunakan Jadual Sementara?

Susan Sarandon
Lepaskan: 2024-12-26 12:26:10
asal
220 orang telah melayarinya

How to Remove Duplicate Rows from MySQL Tables Without Using Temporary Tables?

Membersihkan Pendua daripada Jadual MySQL tanpa Jadual Sementara

Jadual MySQL selalunya mengandungi rekod pendua yang boleh mengeruhkan pangkalan data dan menjejaskan integriti data. Memadamkan pendua ini adalah penting untuk mengekalkan ketepatan data dan meningkatkan prestasi pertanyaan. Artikel ini meneroka pendekatan yang cekap untuk menghapuskan rekod pendua tanpa menggunakan jadual sementara.

Penciptaan Indeks Unik

Kaedah paling mudah melibatkan mencipta indeks unik pada lajur yang mentakrifkan keunikan dalam jadual. Untuk jadual JadualA, indeks berikut memastikan gabungan id_ahli, nombor_kuiz, nombor_soalan dan nombor_jawapan adalah unik:

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

Setelah indeks dibuat, MySQL secara automatik mengekalkan integritinya, menghalang rekod pendua daripada menjadi dimasukkan.

Pemadaman Kunci Utama

Sebagai alternatif, menambahkan kunci utama pada jadual juga boleh menghalang sisipan pendua. Pertanyaan berikut memadamkan rekod pendua berdasarkan kunci utama:

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

Pernyataan DELETE mengalih keluar rekod berdasarkan lajur id, memastikan hanya satu rekod dengan gabungan unik lajur yang sama kekal.

Atas ialah kandungan terperinci Bagaimana untuk mengalih keluar Baris Pendua dari Jadual MySQL 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