Rumah > pangkalan data > tutorial mysql > Bagaimana Mengenalpasti Rekod Pendua Dengan Cekap Berdasarkan Berbilang Lajur dalam SQL?

Bagaimana Mengenalpasti Rekod Pendua Dengan Cekap Berdasarkan Berbilang Lajur dalam SQL?

Patricia Arquette
Lepaskan: 2025-01-04 19:11:39
asal
824 orang telah melayarinya

How to Efficiently Identify Duplicate Records Based on Multiple Columns in SQL?

Mengenalpasti Rekod Pendua Merentasi Berbilang Lajur

Cabaran yang dikemukakan adalah untuk meniru fungsi kod SQL yang disediakan, yang bertujuan untuk mengenal pasti dan mendapatkan semula rekod pendua berdasarkan gabungan dua lajur, iaitu "nama" dan "bandar." Matlamatnya adalah untuk mengecualikan kes di mana hanya satu lajur, sama ada "nama" atau "bandar," sepadan dan hanya mempertimbangkan rekod yang kedua-dua lajur adalah sama.

Untuk menangani keperluan ini, jawapan yang disediakan memanfaatkan subkueri untuk dikira kejadian kedua-dua gabungan "nama" dan "bandar" dalam jadual "barangan". Subkueri ini mengira baris yang dikumpulkan mengikut kedua-dua "nama" dan "bandar" dan menapis kombinasi tersebut dengan kiraan lebih daripada 1, menunjukkan pendua.

select name, city, count(*) as qty
from [stuff]
group by name, city
having count(*) > 1
Salin selepas log masuk

Pertanyaan utama kemudiannya menyertai jadual "bahan" asal dengan hasil subquery, sepadan pada kedua-dua "nama" dan "bandar." Operasi gabungan ini berkesan mengenal pasti rekod pendua yang memenuhi kriteria yang ditentukan. Keputusan akhir menghapuskan positif palsu dengan mengecualikan kes di mana hanya satu lajur sepadan.

select s.id, t.*
from [stuff] s
join (
...
    select name, city, count(*) as qty
    from [stuff]
    group by name, city
    having count(*) > 1
) t on s.name = t.name and s.city = t.city
Salin selepas log masuk

Akibatnya, pertanyaan berjaya mendapatkan semula output yang diingini:

id      name  city   
904834  jim   London  
904835  jim   London  
90145   Fred  Paris   
90132   Fred  Paris
90133   Fred  Paris
Salin selepas log masuk

Pendekatan ini menyediakan yang cekap dan penyelesaian serba boleh untuk mengenal pasti rekod pendua berdasarkan berbilang lajur, memastikan ketepatan dan kesempurnaan hasil pertanyaan.

Atas ialah kandungan terperinci Bagaimana Mengenalpasti Rekod Pendua Dengan Cekap Berdasarkan Berbilang Lajur dalam SQL?. 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