• 02-10-2020, 00:29:22
    #1
    Arkadaşlar TETİKLEYİCİ veya OLAY olarak şöyle bir şey yapmam gerekiyor. Bir türlü işin içinden çıkamadık.


    Amacımız,

    Eğer tabloda userIP sütünunda 1’den fazla aynı değer varsa (yani tekrar eden IP'ler varsa)

    Bu tekrar eden IP'lerin hepsinin satırlarında clonerDetected değeri 1 ise;

    canusefreetrial=0
    freetrialactive= 0

    şeklinde o satırların değerlerini değiştirmek istiyoruz. (eğer 2 tane varsa 2 satırında, 10 tane varsa 10 satırında)


    Bunu nasıl yapabiliriz? Örnek veriyorum 10 dakikada bir yapabilir bunu Olaylar'a ekleyerek
  • 02-10-2020, 00:37:15
    #2
    INNER JOIN
    Araştırın
    Birinci bölümde ip yi ve id alın ikinci bölümde onun id si ile != eslesmeyecek şekilde tekrar aratın çıkarsa onunla dediğiniz işlemleri yaparsınız, bunun hepsini for döngüsüne atın kayıt sayisi kadar dönsün

    Anladığım kadarıyla böyle birşey lazım size doğru anladıysam

    Kolay gelsin
  • 02-10-2020, 01:12:40
    #3
    Anladığım kadarıyla aşağıdaki SQL komutu işini çözer.
    Parantez içindeki kısım ip adreslerini gruplayıp adedi birden fazla olanların listesini çıkartıyor.
    geri kalanda kısımda ip adreslerinden clonerDetected=1 olanları güncelleme yapıyor.

    UPDATE tablo1
    SET tablo1.canusefreetrial=0,tablo1.freetrialactive=0
    WHERE tablo1.user_ip in
    (
    SELECT t2.user_ip
    FROM tablo1 t2
    WHERE t2.clonerDetected=1
    GROUP BY t2.user_ip
    HAVING count(t2.user_ip)>1
    )
    and tablo1.clonerDetected=1
  • 02-10-2020, 01:16:29
    #4
    Altunay adlı üyeden alıntı: mesajı görüntüle
    Anladığım kadarıyla aşağıdaki SQL komutu işini çözer.
    Parantez içindeki kısım ip adreslerini gruplayıp adedi birden fazla olanların listesini çıkartıyor.
    geri kalanda kısımda ip adreslerinden clonerDetected=1 olanları güncelleme yapıyor.

    UPDATE tablo1
    SET tablo1.canusefreetrial=0,tablo1.freetrialactive=0
    WHERE tablo1.user_ip in
    (
    SELECT t2.user_ip
    FROM tablo1 t2
    WHERE t2.clonerDetected=1
    GROUP BY t2.user_ip
    HAVING count(t2.user_ip)>1
    )
    and tablo1.clonerDetected=1

    üstadım tablo 1 ve tablo 2 ne oluyor acaba? tüm bilgiler aynı tabloda da. çok çok teşekkürler
  • 02-10-2020, 21:53:20
    #5
    tablo1 ve t2 senin tablo isimleri , ortada tek tablo var.
    senin tablo ismi --users-- miş.

    UPDATE users
    SET users.canusefreetrial=0, users.freetrialactive=0
    WHERE users.user_ip in ( SELECT t2.user_ip FROM users t2 WHERE t2.clonerDetected=1 GROUP BY t2.user_ip HAVING count(t2.user_ip)>1 )
    and users.clonerDetected=1