Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Memadamkan Baris Pendua Semasa Mengekalkan Penyerahan Terlama?

Bagaimana untuk Memadamkan Baris Pendua Semasa Mengekalkan Penyerahan Terlama?

Linda Hamilton
Linda Hamiltonasal
2024-11-01 05:54:27271semak imbas

 How to Delete Duplicate Rows While Keeping the Oldest Submission?

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!

Kenyataan:
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