senko Mesaj tarihi: Şubat 29, 2012 Paylaş Mesaj tarihi: Şubat 29, 2012 çocuklar, şimdi elimde şöyle bir darabase var ip modem 192.168.100.1 adsl 192.168.100.1 vdsl 192.168.100.5 adsl 192.168.100.5 vdsl 192.168.100.6 vdsl 192.168.100.7 adsl gibi gördüğünüz gibi dublicate'ler var, benim istediğim bu duplicate verilerden bir tanesini silmek. hangisi olduğu önemli değil ama 192.168.100.1 den ya adsl ya vdsl olanı silmek yani ip'leri unique şekilde bırakmak nası yapabilirim bunu mysql de bileniniz var mıdır Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Mr_Hand Mesaj tarihi: Şubat 29, 2012 Paylaş Mesaj tarihi: Şubat 29, 2012 abi nası bi db bu? excele import edebiliyo musun? sql sorgusu mu istiyosun nedir? Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
senko Mesaj tarihi: Şubat 29, 2012 Konuyu açan Paylaş Mesaj tarihi: Şubat 29, 2012 abi db bu değil milletin ip'sini çarşaf gibi sermek istemiyorum buraya :) sql sorgusu istiyorum eeth Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Mr_Hand Mesaj tarihi: Şubat 29, 2012 Paylaş Mesaj tarihi: Şubat 29, 2012 hmm bilemedim. ben de merak ettim yau =) bikaç farklı yöntem yazmışlar orda burda ama büyük tabloyla çuvallar onlar muhtemelen. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
sharky Mesaj tarihi: Şubat 29, 2012 Paylaş Mesaj tarihi: Şubat 29, 2012 SELECT DISTINCT(IP) ? Sadece IP nin duplicate 'ini arıyorsun olarak varsayıyorum tabii. Çünkü verdiğin kayıtlarda duplicate yok. ADSL ve VDSL seçenekleri duplicate olmamasını sağlıyor. Dolayısı ile eksik bilgi :) Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
sharky Mesaj tarihi: Şubat 29, 2012 Paylaş Mesaj tarihi: Şubat 29, 2012 hatta SELECT DISTINCT ip, modem FROM t1 Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
senko Mesaj tarihi: Şubat 29, 2012 Konuyu açan Paylaş Mesaj tarihi: Şubat 29, 2012 ahah sharky naptın ya :) abi dediğim gibi önemli olan sadece ip'lerin unique olması, yani o listeden ya 192.168.100.1 vdsl silincek ya da 192.168.100.1 adsl silincek ama tabloda sadece 1 tane 192.168.100.1 kalmalı. distinct ile sadece farklıları görürüm ama onun duplicate'lerini nasıl silcem tablodan? Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Mirage Mesaj tarihi: Şubat 29, 2012 Paylaş Mesaj tarihi: Şubat 29, 2012 Optimizasyon düsünmeden aklima ilk geleni yaziyorum. Birden fazla bulunan cok IP varsa baya sorgu kullanmis oluyorsun ama. Daha iyi bir cözüm arardim ben olsam. IP sütunu üstünde group by yaparak ve count kullanarak hangi IP'den kac tane var döndüren bir sorgu yaz. Sonra 1'den fazla olan her IP'ye A dersek: SELECT * FROM HEDE WHERE ip = 'A' LIMIT (TOPLAMSAYI - 1) (ya da artik db'ne göre syntaxini kullanarak) ile fazlalik IP'leri bul. Bunun döndürdüklerini de sil. Silme isini bu SELECT ile de birlestirebilirsin bir sekilde. Bu select'in döndürdüklerini direk silebilirsin yani. Teknik kismi sana kalmis. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Mum_Chamber Mesaj tarihi: Şubat 29, 2012 Paylaş Mesaj tarihi: Şubat 29, 2012 ip'ye gore group by, modem de onemsizse max'la alabilirsin. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Mr_Hand Mesaj tarihi: Şubat 29, 2012 Paylaş Mesaj tarihi: Şubat 29, 2012 Hmm. DISTICNT ve GROUP BY yöntemleri vardı benim baktığım sayfalarda da. DISTINCT benim de anladığım (ve senkonun dediği) şekilde silmiyo gereksizleri, sadece SELECT sırasında elimine ediyo. Gruplayarak "birden fazla olanları uçur" dediği yönteme de "büyük table ile yavaş olabilir" diyodu baktığım sayfalar, ama anaşılan başka yöntem yok :P Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Mirage Mesaj tarihi: Şubat 29, 2012 Paylaş Mesaj tarihi: Şubat 29, 2012 Tablonun boyundan cok birden kac tane IP'nin birden fazla olduguna bakar. Dedigim sekilde yaparsan 1 group by sorgusu Birden fazla olan IP sayisi kadar da DELETE/SELECT sorgusu yapiyorsun. Yani tablo büyük de olsa, bu birden fazla IP bulunma olayi nadir olan bir seyse sorun degil. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
wiski Mesaj tarihi: Şubat 29, 2012 Paylaş Mesaj tarihi: Şubat 29, 2012 distinct ip olarak alıp çıkanları temp table a insertleyip, orjinal table ı komple delete edip, temptekileri orjinale instert etsek desem çok mu saçmalamış olurum ? Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Mirage Mesaj tarihi: Şubat 29, 2012 Paylaş Mesaj tarihi: Şubat 29, 2012 SELECT DISTINCT sonuctaki ayni satirlari eler. Ayni IP'leri elemek icin ya sadece IP sütununu sececeksin ya da group by kullanacaksin. Iki sekilde de diger sütunlardaki verileri kaybediyorsun. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Gladmir Mesaj tarihi: Şubat 29, 2012 Paylaş Mesaj tarihi: Şubat 29, 2012 Primary key yok mu bu tabloda, ip lerde index in yok mu Indexing sart buyuk dataset leri select edip sileceksen, table lock lar yagar yoksa. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
BonePART Mesaj tarihi: Şubat 29, 2012 Paylaş Mesaj tarihi: Şubat 29, 2012 bunun icin programlar yok mu abi database temizleme olaylı pahalı programlar hatta snaırsam Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Kojiroh Mesaj tarihi: Şubat 29, 2012 Paylaş Mesaj tarihi: Şubat 29, 2012 ip'ye göre group by yapıp max(modem) alanını seç cevabı yedek bi tablo oluşturup oraya at orijinal tabloyu truncate et yedek tablodaki verileri orijinale çak - create table yedek as select alan1, alan2, ..., alann, max(modem) as modem from orijinal group by ip - truncate table orijinal - insert into orijinal select * from yedek - ??? - PROFIT!!! Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
kozalak Mesaj tarihi: Şubat 29, 2012 Paylaş Mesaj tarihi: Şubat 29, 2012 herhangi bi sorun olabilmesine karsilik truncate yerine oncr asil db yi temp.xx yap.sonra yeni olusan db ye de eskinin ismini ver.sorun olursa tekrar rename ederek halledersin. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Mirage Mesaj tarihi: Şubat 29, 2012 Paylaş Mesaj tarihi: Şubat 29, 2012 Bu gayet iyi calisir bak. Ama öyle baska tabloya atmak yerine dogrudan da silebilmen lazim: DELETE FROM inditabelafatihterimsitayla WHERE NOT EXISTS ( SELECT * FROM ... (Bu subquery Kojiroh'nun dedigi query) ) Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Mum_Chamber Mesaj tarihi: Şubat 29, 2012 Paylaş Mesaj tarihi: Şubat 29, 2012 @mirage, exists tam oyle calismiyor yalniz, ona dikkat etmek lazim. eger birden fazla row donuyorsa direkt exists true olur. said: If a subquery returns any rows at all, EXISTS subquery is TRUE, and NOT EXISTS subquery is FALSE exists kullanilacaksa where ile baglamak lazim. mysql dokumantasyonunda detaylari var. http://dev.mysql.com/doc/refman/5.0/en/exists-and-not-exists-subqueries.html Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
riglous Mesaj tarihi: Şubat 29, 2012 Paylaş Mesaj tarihi: Şubat 29, 2012 http://stackoverflow.com/questions/2728413/equivalent-of-oracles-rowid-in-mysql Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Öne çıkan mesajlar