Bagaimana untuk mengalih keluar Baris Pendua dalam Jadual Sambil Mengekalkan Entri Terlama?

Linda Hamilton
Lepaskan: 2024-10-29 09:21:29
asal
151 orang telah melayarinya

How to Remove Duplicate Rows in a Table While Keeping the Oldest Entry?

Mengalih Keluar Baris Pendua Semasa Mengekalkan Entri Terlama

Dalam jadual anda yang mengandungi data penyerahan pengguna, entri pendua telah terkumpul berdasarkan medan subscriberEmail. Untuk memastikan integriti data, anda ingin mengalih keluar baris pendua ini sambil mengekalkan penyerahan asal.

Penyelesaian:

<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

Penjelasan:

  • Sertai Sendiri: Pertanyaan melakukan sambung sendiri pada jadual myTable, mencipta dua tika berasingan jadual, alias sebagai "x" dan "z."
  • Syarat Perbandingan: Gabungan sepadan dengan baris daripada "x" dan "z" berdasarkan lajur subscriberEmail, dengan berkesan membandingkan setiap baris dengan semua baris lain.
  • Penapisan : Klausa tempat memilih baris daripada "x" dengan nilai lajur id lebih besar daripada nilai id dalam baris yang sepadan dalam "z." Ini mengenal pasti baris pendua dengan nilai ID yang lebih tinggi.
  • Pemadaman: Pernyataan padam mengalih keluar baris pendua yang dikenal pasti dalam "x", hanya meninggalkan penyerahan asal.

Pertimbangan Tambahan:

Untuk mengelakkan sisipan pendua pada masa hadapan, pertimbangkan untuk mencipta indeks UNIK pada lajur subscriberEmail. Ini akan menguatkuasakan keunikan alamat e-mel dalam jadual.

Atas ialah kandungan terperinci Bagaimana untuk mengalih keluar Baris Pendua dalam Jadual Sambil Mengekalkan Entri Terlama?. 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!