folder Tahribat.com Forumları
linefolder Database - Veritabanı
linefolder Mysql Sıralamada Kaçıncı Sırada Olduğunu Bulma



Mysql Sıralamada Kaçıncı Sırada Olduğunu Bulma

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    h0rtl4kk
    h0rtl4kk's avatar
    Kayıt Tarihi: 10/Şubat/2014
    Erkek

    Merhaba,

    select * from users where league = "0" order by leagueScore desc
    Yukarıdaki fonkiyon ile ligi 0 olan kişilerin lig skorunu büyükten küçüğe doğru sıralıyor.

    Bu fonksiyona şu işlemi mysql sorgusu ile nasıl ekleyebilirim?
    "idsi 12 olanın yukarıdaki listeye göre kaçıncı sırada olduğunu yazdır"

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SUPERBICO
    SUPERBICO's avatar
    Kayıt Tarihi: 13/Haziran/2008
    Erkek
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    saybirs
    saybirs's avatar
    Kayıt Tarihi: 24/Temmuz/2009
    Erkek
    /*  Satır satır position'ı göster*/
    set @rowId = 0;
     SELECT @rowId := @rowId + 1 as position,id,league,leagueScore FROM tmplig 
    ORDER BY leagueScore DESC

    ---------------------

     

    /* Id'si 6 olanın position değerini bulalım */
    SELECT id,
           (SELECT COUNT(*) FROM `tmplig` where id >= 6 order by leagueScore DESC) AS `position`,
         league
    FROM tmplig
    WHERE id = 6

     

     

     

    saybirs tarafından 19/Ağu/19 15:54 tarihinde düzenlenmiştir
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    h0rtl4kk
    h0rtl4kk's avatar
    Kayıt Tarihi: 10/Şubat/2014
    Erkek
    saybirs bunu yazdı
    /*  Satır satır position'ı göster*/
    set @rowId = 0;
     SELECT @rowId := @rowId + 1 as position,id,league,leagueScore FROM tmplig 
    ORDER BY leagueScore DESC

    ---------------------

     

    /* Id'si 6 olanın position değerini bulalım */
    SELECT id,
           (SELECT COUNT(*) FROM `tmplig` where id >= 6 order by leagueScore DESC) AS `position`,
         league
    FROM tmplig
    WHERE id = 6

     

     

     

    /* Id'si 6 olanın position değerini bulalım */ kısmında bulunan sorguyu denediğim zaman belirtilen idye sahip kişiyi getiriyor fakat en az skora sahip olmasına rağmen pozisyon hep 1.
    Kodu şu şekilde league=1 olanların içerisinde al dediğim zaman yine hep 1. sırada çıkıyor. Sana zahmet kontrol edebilir misin?

    league 1'de 4 kişi var ve en düşük skora sahip kişinin idsi 8. Position 4 olması lazım ama 1 döndürüyor.

    select id, (select count(*) from users where id >= "8" and league = "1" order by leagueScore desc) as "position", league from users where id = "8" and league = "1" order by leagueScore desc

    Edit: id >= 8 yazdığım için idsi 8'den küçük olanları almıyormuş sorun bundan kaynaklı herhalde.

     

    h0rtl4kk tarafından 19/Ağu/19 16:49 tarihinde düzenlenmiştir
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    saybirs
    saybirs's avatar
    Kayıt Tarihi: 24/Temmuz/2009
    Erkek

    edit

    saybirs tarafından 19/Ağu/19 17:08 tarihinde düzenlenmiştir
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    h0rtl4kk
    h0rtl4kk's avatar
    Kayıt Tarihi: 10/Şubat/2014
    Erkek

    Aşağıdaki sorgu ile hallettim.

    select count(*) from users where leagueScore >= "8" and league = "1" order by leagueScore desc

    leagueScore >= "8" olan yere kişinin skorunu yazdırıyorum.

  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    emirhan-exp
    emirhan-exp's avatar
    Kayıt Tarihi: 10/Ocak/2010
    Erkek

    Select *,rank() over (Order by ..... desc) siralama from .... having siralama=12

     

     

     

     

    emirhan-exp tarafından 20/Ağu/19 01:52 tarihinde düzenlenmiştir
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Elif - Efe
    rakkoc
    rakkoc's avatar
    Kayıt Tarihi: 19/Aralık/2003
    Homo
    emirhan-exp bunu yazdı

    Select *,rank() over (Order by ..... desc) siralama from .... having siralama=12

     

    cok guzel bir mantik olmuş. ama lig kısmını  WHERE ile, lig içinde ki ID'yi having ile alman gerekecek ki lig içinde ki sırasını versin adamın. genel değil.

    edit : yanlışlık ile tab a basinca ilk spacebara basışta post etti :D

    rakkoc tarafından 20/Ağu/19 15:13 tarihinde düzenlenmiştir

    Bu aralar fazla yogunum. Unuttugum seyler oluyorsa affola. DM vs atın.
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    emirhan-exp
    emirhan-exp's avatar
    Kayıt Tarihi: 10/Ocak/2010
    Erkek

    Soruyu yanlis anlamisim.

    Where league=0 olmali sonu. Having e de hic gerek yok.tesekkurler rakkoc.

Toplam Hit: 1557 Toplam Mesaj: 9
mysql row count hang satir mysql select