Bagaimana untuk Mengeluarkan Baris Pendua dengan Cekap Kecuali untuk Contoh Terawal?

Barbara Streisand
Lepaskan: 2024-10-31 11:34:01
asal
767 orang telah melayarinya

How to Efficiently Remove Duplicate Rows Except for the Earliest Instance?

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>
Salin selepas log masuk

Dalam pertanyaan ini:

  • x dan z ialah alias yang mewakili dua kejadian dalam jadual yang sama.
  • Klausa JOIN ​​sepadan dengan rekod berdasarkan padanan subscriberEmail nilai.
  • Klausa WHERE memilih rekod daripada x di mana id lebih besar daripada id yang sepadan rekod dalam z. Ini memastikan bahawa hanya baris pendua dengan ID yang lebih tinggi dipilih untuk dipadamkan.

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!

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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!