Sql Tekrar Eden Kayıtları Silmek

Veritabanınızda bulunan tablolarınızda eğer tekrarlayan (yinelenen) kayıtlar varsa, aşağıdaki Sql sorgusu ile bu tekrarlayan kayıtları silmeniz mümkündür.

Öncelikle bu tarz denemeleri yapmadan önce, sorgunuzun doğru çalıştığından emin olmak için benim size önerim, datalarını sileceğiniz tablonuzun bir yedeğini alıp denemeyi onun üzerinden yapmanız. Tablonuzun yedeğini almanız için ise, aşağıdaki Sql cümleciği işinizi görecektir.

 

SELECT * INTO YeniTablonuz FROM MevcutTablonuz

Sonrasında yedek tablo üzerinden ilgili sorgunuzu çalıştırıp doğru çalışıp çalışmadığını test edebilirsiniz.

 
Gelelim asıl konuya, yani tekrarlanan kayıtları nasıl sileceğinize.

Anlaşılması daha kolay olması için Sql Server’da tablo üzerinden resimli bir şekilde anlatacağım. Urun isminde bir tablomuz olsun.

sql tekrar eden kayıtlar

Resimde de görüldüğü üzere 4 tane kayıt tekrarlı gözüküyor. Bu tekrarlanan kayıtları aşağıdaki Sql sorgusuyla silebiliriz.

DELETE FROM Urun WHERE id NOT IN
(
SELECT MIN(id)
FROM Urun
GROUP BY UrunAdi, Fiyat
)

 

Sorguyu kısaca açıklamak gerekirse, UrunAdi ve Fiyat kolonlarını grupluyor ve grupladıklarından sadece id’si min olanları getiriyor, dıştaki sorguyla ise bunun dışında kalanları siliyor.

Sorgu çalıştırıldıktan sonra tablomuz aşağıdaki gibi olacaktır.

sql yinelenen satırları silme

Tabi bu anlattığım en basit hali, bunun dışında çok daha farklı yöntemler mevcuttur. Soru ve görüşlerinizi yorumlar kısmında belirtebilirsiniz.
Hepinize kolay gelsin 🙂

1 yorum “Sql Tekrar Eden Kayıtları Silmek”

  1. Çok iyi bir yöntem, en azından copy paste yapılmış birbirinin aynısı diğer web sayfalarındaki kodlardan farklı ve çok iyi çalışıyor…Ellerinize, emeğinize sağlık,teşekkürler….

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir