SQL’de aynı içeriğe sahip kayıtları bulma ve silme

Bu yazıda, SQL ile aynı içeriğe sahip farklı kayıtların (duplicate rows) nasıl bulunacağını ve bulunan bu kayıtların nasıl silineceğini anlatmaya çalışacağım.

Futbolcular adında bir tablomuz olduğunu düşünelim. Bu tablodaki kayıtlar da aşağıdaki gibi olsun.

Tabloda görebileceğiniz üzere Diego ve Mehmet Topal’ın olduğu satırlar birbirleriyle primary key’leri yani ID kolonu hariç birebir aynı. Caner Erkin’in olduğu satırlarda ise yalnızca FormaNo kolonları farklı.
İlk olarak primary key dışındaki tüm alanları aynı olan kolonları getirelim.

[/crayon]
Bu sorguyu çalıştırdığımda bana Ad, Soyad ve FormaNo alanları eşit olan kayıtların en büyük ID’ye sahip olanlarını getirmesi gerekiyor. Sorguyu çalıştırıyorum ve sonuç aşağıdaki gibi.

Şimdi ise FormaNo alanını sorgudan çıkardığımda Caner Erkin’in sonuçlar arasına eklenip eklenmediğine bakacağım. Sorgumu aşağıdaki gibi değiştiriyorum.

[/crayon]
Sonuç olarak FormaNo alanının eşit olma durumu aranmadığı zaman Caner de sonuçlar arasında görünüyor.

Bu kayıtları silmek istediğimizde ise aşağıdaki gibi bir sorgu kullanabiliriz.

[/crayon]

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.