Menguruskan Baris Pendua: Mengekalkan Penyerahan Terlama
Data pendua boleh memberi kesan ketara kepada integriti dan kebolehgunaan mana-mana pangkalan data. Dalam senario ini, matlamat kami adalah untuk menghapuskan baris pendua berdasarkan medan subscriberEmail, hanya mengekalkan penyerahan asal.
Untuk mencapai ini tanpa menggunakan teknik pertukaran jadual, kami boleh menggunakan pertanyaan SQL berikut:
delete x from myTable x join myTable z on x.subscriberEmail = z.subscriberEmail where x.id > z.id
Pertanyaan ini menggunakan kuasa aliasing jadual. Dengan mencipta alias x dan z untuk jadual myTable, kita boleh membandingkan baris dalam jadual yang sama. Khususnya, kami menyertai x dan z pada medan subscriberEmail, dengan berkesan mewujudkan penyertaan sendiri.
Klausa tempat melaksanakan penapisan penting. Ia menghapuskan rekod dalam x di mana medan id lebih besar daripada medan id yang sepadan dalam z. Ini memastikan bahawa hanya penyerahan bukan asal (pendua) disasarkan untuk dipadamkan.
Untuk meningkatkan lagi prestasi, pertimbangkan untuk melaksanakan indeks UNIK pada lajur subscriberEmail. Ini secara automatik akan menghalang entri pendua daripada dimasukkan ke dalam jadual anda pada masa hadapan.
Dengan melaksanakan pertanyaan ini, anda boleh mengalih keluar baris pendua dengan cekap, mengekalkan penyerahan tertua untuk setiap alamat e-mel tanpa memerlukan manipulasi jadual yang rumit atau prosedur merombak data.
Atas ialah kandungan terperinci Bagaimana untuk Memadamkan Baris Pendua Semasa Mengekalkan Penyerahan Terlama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!