Mengalih Keluar Baris Pendua Dengan Cekap Kecuali Contoh Terawal
Masalah:
Anda mempunyai jadual mengandungi data dengan banyak entri pendua yang disebabkan oleh penyerahan pengguna. Matlamat anda adalah untuk menghapuskan baris pendua ini berdasarkan medan subscriberEmail, hanya meninggalkan rekod yang paling awal diserahkan. Dalam erti kata lain, anda ingin mengenal pasti semua e-mel pendua dan memadamkan baris yang sepadan sambil mengekalkan penyerahan asal.
Penyelesaian:
1. Pendekatan Sertai Diri:
Daripada menukar jadual, anda boleh memanfaatkan penyertaan diri untuk mencapai matlamat anda:
<code class="sql">delete x from myTable x join myTable z on x.subscriberEmail = z.subscriberEmail where x.id > z.id</code>
Dalam pertanyaan ini:
2. Pertimbangan Tambahan:
Untuk mengelakkan sisipan pendua pada masa hadapan, pertimbangkan untuk mencipta INDEKS UNIK pada lajur subscriberEmail.
Faedah:
Pendekatan ini mengalih keluar baris pendua dengan cekap tanpa perlu membuat jadual sementara. Ia menggunakan struktur jadual sedia ada dan mengekalkan identiti unik setiap baris berdasarkan medan id.
Atas ialah kandungan terperinci Bagaimana untuk Mengeluarkan Baris Pendua dengan Cekap Kecuali untuk Contoh Terawal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!