Rumah >pangkalan data >tutorial mysql >Bagaimana untuk mengalih keluar Baris Pendua dalam Jadual Sambil Mengekalkan Entri Terlama?

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

Linda Hamilton
Linda Hamiltonasal
2024-10-29 09:21:29275semak imbas

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>

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!

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