Mengalih keluar Rekod Pendua Tanpa Jadual Suhu
Apabila berhadapan dengan rekod pendua dalam jadual MySQL, anda mungkin menghadapi situasi di mana jadual temp terbukti tidak praktikal atau tidak diingini. Artikel ini meneroka penyelesaian alternatif untuk menghapuskan pendua sambil mengekalkan satu kejadian bagi setiap rekod unik.
Satu pendekatan ialah memanfaatkan Indeks Unik. Dengan menambahkan indeks unik pada lajur yang mengenal pasti rekod secara unik (id_ahli, nombor_kuiz, nombor_soalan, nombor_jawapan), anda menghalang penyisipan baris pendua, memastikan hanya satu baris wujud untuk setiap set nilai unik.
< pra>UBAH ABAIKAN JADUAL JadualA
TAMBAH INDEKS UNIK (id_ahli, nombor_kuiz, nombor_soalan, nombor_jawapan);
Sebagai alternatif, anda boleh menambah kunci utama pada jadual dan menggunakan pertanyaan untuk memadam rekod pendua secara selektif:
< pra>PADAM DARI ahli
WHERE id IN (SELECT *
FROM (SELECT id FROM member GROUP BY member_id, quiz_num, question_num, answer_num HAVING (COUNT(*) > 1) ) AS A );
Dengan menggunakan syarat COUNT(*) > dalam subkueri, pertanyaan mengenal pasti baris yang muncul lebih daripada sekali dalam setiap gabungan unik bagi id_ahli, nombor_kuiz, nombor_soalan dan nombor_jawapan Lajur id baris pendua ini kemudiannya digunakan untuk mencari dan padamkannya daripada jadual ahli.
Pendekatan ini menyediakan kaedah yang cekap dan boleh dipercayai untuk mengalih keluar rekod pendua tanpa bergantung pada jadual temp, memastikan integriti data dan meminimumkan kesan ke atas prestasi.
Atas ialah kandungan terperinci Bagaimana untuk mengalih keluar Rekod Pendua dalam MySQL Tanpa Menggunakan Jadual Sementara?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!