SQL Cift Kayıtları Bulmak ve Silmek


August 2019 (0) Iptv 5/9/2024


Mükerrer kayıtlar her zaman başımıza bela olmuştur ve hep bizlere sorun çıkartmışlardır. Bu yazımızda da bu sorunun önüne nasıl geçeceğimizi göreceğiz. Aslında önüne geçmek değil de nasıl temizleyeceğimizi göreceğiz. Mükerrer kayıtları engellemek pek mümkün olmuyor. Yani tablolara index ‘ler versek bile indexli kolonlar hariç kalan diğer kolonlar mükerrer çıkabilir. Yada kayıt işlemini yapmadan önce girilen kayıtlar ile aynısı olan kayıt varmı kontrolü gibi kontroller ile önüne geçmeye çalışabiliriz.

Yol I – SQL Mükerrer Kayıtlar Bulmak ve Silmek

Şimdi SQL de mükerrer kayıtları nasıl bulacağımızı görelim.

Select Kolon_Adi, Count(Kolon_Adi) 
From Tablo_Adi 
Group By Kolon_Adi 
Having Count (Kolon_Adi) > 1


Bu sorgu bize Kolon_Adi verileri aynı olan verileri gösterecektir. Ama bunları silerken sorun yaşayabiliriz. Bu sebeple geçici olarak da olsa kolona bir ID kolonu ekleyip, primary key yapalım ve 1,1 otomatik artan olarak ayarlayalım. Sonraki işlem olarak da yukarıdaki sorgumuzu düzenleyelim.

Select Kolon_Adi as KLN, Count(Kolon_Adi) as ADET , MAX(ID) as ID
From Tablo_Adi
Group By Kolon_Adi
Having Count (Kolon_Adi) > 1

Şimdi, bu şekilde mükerrer kolonlarımızı bulmuş olduk. Bu kayıtları silmek istiyor isek nasıl sileceğimize bakalım.

Silme konusunda birden fazla örnek vereceğim.

Öncelikle yukarıdaki örneğimize göre bir silme işlemi yapalım.

Select Kolon_Adi as KLN, Count(Kolon_Adi) as ADET , MAX(ID) as ID
From Tablo_Adi
Group By Kolon_Adi
Having Count (Kolon_Adi) > 1


Öncelikle yukarıdaki örneğimize göre bir silme işlemi yapalım.
Delete from Tablo_Adi where ID in (

Select MAX(ID) as ID
From Tablo_Adi 
Group By Kolon_Adi 
Having Count (Kolon_Adi) > 1

)

Select Kolon_Adi as KLN, Count(Kolon_Adi) as ADET , MAX(ID) as ID
From Tablo_Adi 
Group By Kolon_Adi 
Having Count (Kolon_Adi) > 1

Yol II – SQL Mükerrer Kayıtlar Silmek

SQL Mükerrer Kayıtlar Bulmak ve Silmek işlemi bu kadardı. Ben hiç bakmayım sileyim derseniz de bir kaç farklı yöntem daha var.

Burada vereceğim yöntem yukarıdaki yöntemin tersi diyebilirim.

Delete
From Tablo_Adi
Where ID Not In
(
Select MIN(ID)
From Tablo_Adi
Group By Kolon1, Kolon2, Kolon3
)
Select Kolon_Adi as KLN, Count(Kolon_Adi) as ADET , MAX(ID) as ID
From Tablo_Adi 
Group By Kolon_Adi 
Having Count (Kolon_Adi) > 1

Yol III – SQL Mükerrer Kayıtlar Silmek

select * FROM TABLO_ADI WHERE ILGILI_SUTUN NOT IN
(
SELECT (ILGILI_SUTUN )
FROM TABLO_ADI 
Group By ILGILI_SUTUN 
Having Count (ILGILI_SUTUN ) > 1
)

and Tarih_Sutunu >='30.08.2019'


Yorum yapabilmek için giriş yapınız

Giriş Yap

Sitede Ara

En Çok Okunanlar

Android Cihazlara POP3 E-Posta Hesabı Kurulumu (1761)
Windows simgelerinde beyaz ikon sorunu ve çözümü (1332)
SQL REPLACE() Kullanımı (884)
Yerel Ağ Bağlantısına girmek istediğimde ''Bağlantı özelliklerine erişmek için yeterli yetkiniz yok.Yöneticinize başvurun'' uyarısı.. (487)
Access violation at address 0518fde4 inmodule NETINFO.dll Read of adress 00000000 (393)
CMD komutları ile Windows Aktivasyonu (367)
PatchCleaner v1.4.2.0 indir Windows Installer Temizleme Programı (357)
MailEnable Webmail Unknown or Disabled User Hatası (349)
Server communication failure. Please refresh your browser and try again. (339)
Bedava Netflix Hesapları 2022 (Ücretsiz Premium Hesaplar) (332)
There is already an object named in the database Cozum (326)
Turbobit Premium Hesaplar Bedava Güncel Üyelikler 2022 (315)
Turbobit Premium Hesaplar Güncel Liste 2022 (313)
Windows 10 Gereksiz Servislerin Kapatılması - Resimli Anlatım (295)
Yazıcı hata kodu 0x0000011b sorun ve cozumu (273)
Windows Bileşen Deposu (WinSxS) Klasörünü Temizleme (270)
ASP.NET MVC Email Doğrulama Sayfası (Verification) (233)
Adobe After Effects CC 2019 Full İndir – v16.1.1.4 (232)
Linq ile inner Join Kullanımı (229)
Dinozor Nesline Son Veren Silen Asteroit Felaketi, Nasıl Gerçekleşti? (220)
3 Adımda Server olay loglarının silinmesi (199)
Windows 10 durdurulabilecek hizmetler (181)
Visual Studio 2017 Dil Ekleme/Değiştirme (175)
Bedava Turbobit Premium Hesap 2022 (%100 Güncel Hesaplar) (165)
Mailenable IP Adresi Nasıl Banlama / How to ip ban block on Mailenable? (154)

Son Yorumlar