Kategoriler
MySQL

MySQL’de Aynı Değere Sahip (Duplicate) Satırları Silmek

Geçenlerde yine bir müşteri işi için, gönderilen verileri mail adresine gönderirken aynı zamanda veritabanına da kaydeden bir iletişim formu hazırlamam gerekti. Form gayet sağlıklı çalışıyordu fakat veritabanını incelediğimde bazı kişilerin iki üç kere mail attığını gördüm. Yani aynı değerlere sahip birden çok satır vardı veritabanı tablosunda. E tabi binlerce satır olduğu için tek tek uğraşmak biraz saçma olurdu. Kendini tekrarlayan (duplicate) satırları silmek için MySQL’de şu sorguyu çalıştırmam yeterli oldu:

DELETE FROM tablo_adi
	WHERE id NOT IN (SELECT * 
		FROM (SELECT MIN(n.id)
			FROM tablo_adi n
				GROUP BY n.satir_adi) x)

Öncelikle veritabanı tablomuzun içerisine girerek SQL sekmesini açıyoruz ve yukarıdaki SQL sorgusunu yapıştırıyoruz. Koddan da anlayacağınız gibi “tablo_adi” kısmına işlem yaptığımız tablonun adını, “satir_adi” kısmına ise aynı satırları analiz etmek için baz alacağınız satırın adını yazıyorsunuz. Sonra sorguyu çalıştırıyorsunuz; hepsi bu kadar.

Tabi siz yine her ihtimale karşı bu işlemi yapmadan yedeğinizi alın. 🙂

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.