• 05-11-2013, 22:43:29
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Merhaba, vbulletin kullanıyorum forum ilk açıldığı zamanda aynı mail adresi ile kayıt seçeneği açıkmış ve aynı mail ile birden çok kullanıcı kayıt olmuş. Şimdi onları şu sorgu ile php myadminde bulabiliyorum;

    SELECT email, COUNT(email) AS Duplicates FROM user GROUP BY email HAVING ( COUNT(email) > 1 )

    Ancak bunları silmek de istiyorum fakat bana şu uyarı geliyor; " Bu tablo benzersiz bir sütun içermiyor. Izgara düzenleme, işaretleme kutusu, Düzenle, Kopyala ve Sil özellikleri kullanılabilir değil."

    Ne eklemem lazım sorguya ki silebileyim. Teşekkürler
  • 06-11-2013, 00:01:14
    #2
    Şunu düzenleyip dener misiniz ?
    Alıntı
    DELETE u1 FROM users u1, users u2 WHERE u1.id < u2.id AND u1.email = u2.email
    Not: Öncesinde yedek almayı unutmayın, insanız hepimiz hata yapabiliriz
  • 06-11-2013, 00:09:54
    #3
    Clable adlı üyeden alıntı: mesajı görüntüle
    Şunu düzenleyip dener misiniz ?


    Not: Öncesinde yedek almayı unutmayın, insanız hepimiz hata yapabiliriz
    Hocam düzenleme derken ne yazık ki fazla bir bilgim yok sql hakkında sadece temel sorguları biliyorum.

    Şunu denedim olmadı mantıksız mı olmuş?

    DELETE FROM user WHERE GROUP BY email HAVING ( COUNT(email) > 1 )
  • 06-11-2013, 00:16:24
    #4
    Akademik adlı üyeden alıntı: mesajı görüntüle
    Hocam düzenleme derken ne yazık ki fazla bir bilgim yok sql hakkında sadece temel sorguları biliyorum.

    Şunu denedim olmadı mantıksız mı olmuş?

    DELETE FROM user WHERE GROUP BY email HAVING ( COUNT(email) > 1 )
    Yazdığınız sorgu biraz hatalı olmuş. Tablo adınız "user", primary key'iniz "id" ve email adresini tuttuğunuz sütunun adı "email" olduğunu tahmin ederek şu şekilde olacağını düşünüyorum;

    DELETE u1 FROM user u1, user u2 WHERE u1.id < u2.id AND u1.email = u2.email
  • 06-11-2013, 00:34:37
    #5
    Clable adlı üyeden alıntı: mesajı görüntüle
    Yazdığınız sorgu biraz hatalı olmuş. Tablo adınız "user", primary key'iniz "id" ve email adresini tuttuğunuz sütunun adı "email" olduğunu tahmin ederek şu şekilde olacağını düşünüyorum;

    DELETE u1 FROM user u1, user u2 WHERE u1.id < u2.id AND u1.email = u2.email
    Hocam primary key'im userid'di ve sonuç 883 kişi silindi. Hem de sadece duplicate olanları normalde ben hepsini silmeyi göze almıştım çok çok teşekkür ederim beni 2 günlük işten kurtardınız!
  • 24-11-2014, 18:17:52
    #6
    Clable adlı üyeden alıntı: mesajı görüntüle
    Yazdığınız sorgu biraz hatalı olmuş. Tablo adınız "user", primary key'iniz "id" ve email adresini tuttuğunuz sütunun adı "email" olduğunu tahmin ederek şu şekilde olacağını düşünüyorum;

    DELETE u1 FROM user u1, user u2 WHERE u1.id < u2.id AND u1.email = u2.email
    Hocam tekrar merhaba vaktiniz varsa size bir konuda danışmak istiyorum. Site ilk kurulduğu zaman kullanıcılar mail adreslerinin başına "www." koymuş yaklaşık 630 kişi var mail adreslerinden sadece "www."'yı silebilir miyiz sorgu ile? Teşekkür ederim.
  • 26-11-2014, 21:09:31
    #7
    Akademik adlı üyeden alıntı: mesajı görüntüle
    Hocam tekrar merhaba vaktiniz varsa size bir konuda danışmak istiyorum. Site ilk kurulduğu zaman kullanıcılar mail adreslerinin başına "www." koymuş yaklaşık 630 kişi var mail adreslerinden sadece "www."'yı silebilir miyiz sorgu ile? Teşekkür ederim.
    Merhaba,

    Geciken cevap için özür dilerim bugünlerde foruma pek vakit ayıramıyorum. Aşağıdaki sorgu ile istediğinizi yapabilirsiniz.


    update User set email = REPLACE(email,'www.','') where email like 'www.%'

    Kolay gelsin.
  • 26-11-2014, 22:41:12
    #8
    Clable adlı üyeden alıntı: mesajı görüntüle
    Merhaba,

    Geciken cevap için özür dilerim bugünlerde foruma pek vakit ayıramıyorum. Aşağıdaki sorgu ile istediğinizi yapabilirsiniz.


    update User set email = REPLACE(email,'www.','') where email like 'www.%'

    Kolay gelsin.
    Est. hocam ben rahatsız ettim sizi Çok çok teşekkürler tekrardan, sizlere de kolay gelsin.