folder Tahribat.com Forumları
linefolder Database - Veritabanı
linefolder Mysqlde Aynı Değere Sahip Satırlardan Güncel Olanını Nasıl Alabilirim?



Mysqlde Aynı Değere Sahip Satırlardan Güncel Olanını Nasıl Alabilirim?

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

    Başlığı nasıl yazacağımı pek bilemedim. Şu tür bir işlem yapmak istiyorum. Resimde gördüğünüz gibi tabloya aynı kullanıcıya ait veriler ekleniyor.

    Bu eklenen verilerden x username'ine sahip kişinin madalyasını büyükten küçüğe doğru sıralayıp ilk değeri almam gerekiyor.
    Şuan kullandığım komut:
    SELECT * FROM `bakiye_hareketleri` ORDER BY date DESC, medal DESC LIMIT 5;

    Sonuç:

     

    Resimde görüldüğü üzere bekmekci adına sahip 5 adet satır var. Burada bekmekci'ye ait 1 satır olmalı. Bu satırda medal ve date değeri en yüksek olan olmalı.

    Not: Farklı bir tablo oluşturarak bu sorunu çözbilirim ama şuanki tabloda sorunun çözümü var ise yeni tablo oluşturmaktan kurtulmuş olurum. Bu yüzden önceliğim bu sorunu çözmektir.
    username'i 'bekmekci' şeklinde sabit tutamam. Farklı isimde üyelerde olacak.

    Edit: Aşağıdaki kod ile istediğim işlemi yapıyor ama sadece en eski veriyi veriyor. Bana date ve medal'ı en yüksek olanı vermesi lazım.
    SELECT * FROM `bakiye_hareketleri` where date BETWEEN DATE_ADD(NOW(), INTERVAL -1 WEEK) AND NOW() GROUP BY username HAVING COUNT(*) > 1 ORDER BY medal DESC, date DESC;

    h0rtl4kk tarafından 10/Nis/19 21:12 tarihinde düzenlenmiştir
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    coder2
    coder2's avatar
    Kayıt Tarihi: 15/Mart/2007
    Erkek

    Tekrar tekrar okuyorum acaba yanlış mı anlıyorum diye.

    Limit 5 vermişsiniz onu limit 1 yapsanız ?


    Önceleri Kızlar Utanınca Kızarırdı Şimdilerde Kızarınca Utanıyorlar..
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    h0rtl4kk
    h0rtl4kk's avatar
    Kayıt Tarihi: 10/Şubat/2014
    Erkek
    coder2 bunu yazdı

    Tekrar tekrar okuyorum acaba yanlış mı anlıyorum diye.

    Limit 5 vermişsiniz onu limit 1 yapsanız ?

    Limit 1 yaparsam sadece tek kişiyi alacak. Derdimi tam olarak anlatamadım muhtemelen.
    Bu tabloya şu şekilde girişler oluyor.

    ahmet, medal 300;
    ahmet, medal 380;
    veli, medal 150;
    yasin, medal 500;
    veli, medal 980;

    Bu satırlar içerisinde kaç tane x adına sahip satır varsa bu x satırlarından medal'i en yüksek olan x satırını almam lazım. Böylelikle her kullanıcıdan 1 adet en yüksek medal değerine sahip satır olacak.

  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Roark
    Roark's avatar
    Kayıt Tarihi: 12/Ağustos/2011
    Erkek

    Username e göre dıstınct ve desc kullansan çözmez mi hocam?

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

    Username e göre dıstınct ve desc kullansan çözmez mi hocam?

    DISTINCT kullanarak istediğim sonuca ulaştım. Teşekkürler.
    Başkasına lazım olursa diye şuan ki kullandığım kodu paylaşayım.

    SELECT DISTINCT username, MAX(medal), MAX(date) FROM `bakiye_hareketleri` where date BETWEEN DATE_ADD(NOW(), INTERVAL -1 WEEK) AND NOW() GROUP BY username HAVING COUNT(*) > 1 ORDER BY medal DESC, date DESC;

  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Roark
    Roark's avatar
    Kayıt Tarihi: 12/Ağustos/2011
    Erkek
    h0rtl4kk bunu yazdı
    Roark bunu yazdı

    Username e göre dıstınct ve desc kullansan çözmez mi hocam?

    DISTINCT kullanarak istediğim sonuca ulaştım. Teşekkürler.
    Başkasına lazım olursa diye şuan ki kullandığım kodu paylaşayım.

    SELECT DISTINCT username, MAX(medal), MAX(date) FROM `bakiye_hareketleri` where date BETWEEN DATE_ADD(NOW(), INTERVAL -1 WEEK) AND NOW() GROUP BY username HAVING COUNT(*) > 1 ORDER BY medal DESC, date DESC;

    Rica ederim hocam , distinct yapısı tekrarlanan grup verilerini tekli hale getiriyor zaten group by ile having şartını da yazdığın için tek satır döndürecektir ki öyle de olmuş. Kolay gelsin iyi çalışmalar 

Toplam Hit: 1078 Toplam Mesaj: 6
mysql aynı değer aynı veri mysql where