Mysql çift kayıtları bulma ve silme

'deneme' ismindeki mysql veritabanımızdaki birden fazla olan kayıtları silmemiz için ilk önce tablomuza 'q' adında bir alan açalım. (Resimde belirttiğim gibi.)

Biz bu tablomuzda adı, soyadı ve yaşı aynı olan kayıtlarını sql kodu ile buldurup işaretleyeceğiz.

 Sql sorgusu kısmına girerek şu komutu uygulayacağız.

UPDATE deneme AS t
  JOIN deneme AS tt
    ON t.ad = tt.ad
     AND t.soyad = tt.soyad
     AND t.yas = tt.yas
     AND t.id > tt.id
SET t.q = 1;

not: veritabanınızda çok kayıt varsa işlem uzun sürecektir. bitene kadar sayfayı kapamayınız.

Bu kodu çalıştırdıktan sonra veri tabanındaki kayıtlarımızın benzer olanlarının 'q' alanları resimdeki gibi '1' değeri ile işaretlenmiş olucak.

Görüldüğü gibi benzer kayıtlar bulundu ve işaretlendi.
Bu adımdam sonra mysql silme kodunu kullanarak işaretli benzer kayıtlarımızı silmiş olacağız.

Silme işlemi için uygulayacağımız kod.



delete from deneme where q='1'

Bu kodu uyguladıktan sonra. Veritabanımızdaki tüm benzer kayıtlar silinmiş olacak ve deneme tablomuzdaki tüm kayıtlar temize çıkacaktır.


Tablomuzun delete komutundan sonraki durumu.







Not:  Mysql kodlarındaki kırmızı ile işaretlediğim alanlar kendinize göre düzenleyeceğiniz alanlardır.

Not: Veritabanındaki yapacağınız eşleşmeye göre kodu geliştirebilir yada azaltabilirsiniz. örneğin sadece adı ve soyadı aynı olanları işaretleyip silmeniz için


UPDATE deneme AS t
  JOIN deneme AS tt
    ON t.ad = tt.ad
     AND t.soyad = tt.soyad
     AND t.id > tt.id
SET t.q = 1;

bu şekilde;

yada eşleşmeyi dahada geliştirmek için

UPDATE deneme AS t
  JOIN deneme AS tt
    ON t.ad = tt.ad
     AND t.soyad = tt.soyad
     AND t.yas = tt.yas
    AND t.mail = tt.mail  
   AND t.tc = tt.tc
     AND t.id > tt.id
SET t.q = 1;

gibi geliştirilebilir.


İşaretleme için açtığımız 'q' alanı sizin tablonuzda varsa ve başka bir işlem için kullanılıyorsa bu kısmı başka harf veya alan adı atayıp kodun 'q' kısımlarını ona göre düzenlemeniz gerekir.

koddaki t ve tt alanlarını değiştirmeyin.

Not: Bütün bu işlemleri yapabilmeniz için tablonuzda id alanı olmalıdır ve alan int tipinde olup AUTO_INCREMENT otomatik sıralama olmalıdır.

Daha önceden böyle bir alanınız yoksa bu işlemleri yapmadan önce oluşturmanız gerekmektedir.

Yorumlar

Bu blogdaki popüler yayınlar

Wifi Hack (Wpa/Wpa2) Şifre Kırmak

Crunch Kullanımı (Kali Linux Şifre Kırma)

Python ile Hack (Mechanize)