lostyazilim
tr.link

Lımıt içinde lımıt kullanımı

21 Mesajlar 2.978 Okunma
lstbozum
tr.link

mehmet01 mehmet01 WM Aracı Kullanıcı
  • Üyelik 12.03.2013
  • Yaş/Cinsiyet 32 / E
  • Meslek ...
  • Konum Adana
  • Ad Soyad M** Ç**
  • Mesajlar 665
  • Beğeniler 329 / 328
  • Ticaret 1, (%100)

pdosystem adlı üyeden alıntı

Arkadaşın demek istediği durum şu sonuc kısmındaki rakama göre sıralayacak ama tüm veritabanında sıralamayacak mesela 21 sıradaki 34 oy almış alabilir. O zaman en üstte çıkar arkadaş sadece ilk 20 sıradakiler aramasında sorgulama yapmak istemiş buda top ile yapılıyor. Direk limit aynı veriyi vermez yani.

Teşekkür ederim. Şimdi anladım sanırım. AnketNo'ya göre ilk 20 kaydı alıp bu 20 kayıt içinde en yüksek değere sahip 5taneyi çekmek istiyor.
pdosystem

kişi bu mesajı beğendi.

wmaraci
reklam

pdosystem pdosystem Kullanıcı
  • Üyelik 31.12.2018
  • Yaş/Cinsiyet 37 / K
  • Meslek Php Yazılım
  • Konum Bursa
  • Ad Soyad Ö** S**
  • Mesajlar 28
  • Beğeniler 13 / 6
  • Ticaret 8, (%63)

mehmet01 adlı üyeden alıntı

Teşekkür ederim. Şimdi anladım sanırım. AnketNo'ya göre ilk 20 kaydı alıp bu 20 kayıt içinde en yüksek değere sahip 5taneyi çekmek istiyor.


Evet tabloda 100 kayıt olabilir. 100 kayıtlı bir tabloda arkadaş ilk 20 tanesinde sorgu yapmak istiyor.
 

 

loss07 loss07 WM Aracı Kullanıcı
  • Üyelik 25.03.2019
  • Yaş/Cinsiyet 28 / E
  • Meslek I-T
  • Konum Antalya
  • Ad Soyad S** U**
  • Mesajlar 72
  • Beğeniler 13 / 11
  • Ticaret 0, (%0)
Hah hele şükür baya araştırdım top komutu diye bişey buldum ama nerde kullanacağımı bilemedim. top komutunu aşağıdaki sorgunun neresinde kullanmalıyım

SELECT anketno ,COUNT(*) as sayac FROM `oylar` GROUP BY anketno ORDER BY sayac DESC LIMIT 5
pdosystem

kişi bu mesajı beğendi.

pdosystem pdosystem Kullanıcı
  • Üyelik 31.12.2018
  • Yaş/Cinsiyet 37 / K
  • Meslek Php Yazılım
  • Konum Bursa
  • Ad Soyad Ö** S**
  • Mesajlar 28
  • Beğeniler 13 / 6
  • Ticaret 8, (%63)

loss07 adlı üyeden alıntı

Hah hele şükür baya araştırdım top komutu diye bişey buldum ama nerde kullanacağımı bilemedim. top komutunu aşağıdaki sorgunun neresinde kullanmalıyım

SELECT anketno ,COUNT(*) as sayac FROM `oylar` GROUP BY anketno ORDER BY sayac DESC LIMIT 5


cevabı 3 mesaj üstte yazdım.
ereglibilgisayar

kişi bu mesajı beğendi.

wmaraci
wmaraci

loss07 loss07 WM Aracı Kullanıcı
  • Üyelik 25.03.2019
  • Yaş/Cinsiyet 28 / E
  • Meslek I-T
  • Konum Antalya
  • Ad Soyad S** U**
  • Mesajlar 72
  • Beğeniler 13 / 11
  • Ticaret 0, (%0)
Hocam ben onu da önce denedim php my admin de de test ettiğimde hata veriyor :(
pdosystem

kişi bu mesajı beğendi.

pdosystem pdosystem Kullanıcı
  • Üyelik 31.12.2018
  • Yaş/Cinsiyet 37 / K
  • Meslek Php Yazılım
  • Konum Bursa
  • Ad Soyad Ö** S**
  • Mesajlar 28
  • Beğeniler 13 / 6
  • Ticaret 8, (%63)

loss07 adlı üyeden alıntı

Hocam ben onu da önce denedim php my admin de de test ettiğimde hata veriyor :(


Örnek yapayım hemen tam kodu vereyim olurmu 10 dakika içinde.
 

 

loss07 loss07 WM Aracı Kullanıcı
  • Üyelik 25.03.2019
  • Yaş/Cinsiyet 28 / E
  • Meslek I-T
  • Konum Antalya
  • Ad Soyad S** U**
  • Mesajlar 72
  • Beğeniler 13 / 11
  • Ticaret 0, (%0)
Hocam zahmet olmazsa çok makbule geçer.
Mantık olarak da çalışması lazım ama

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '20 anketno,COUNT(*) as sayac FROM `oylar` GROUP BY anketno ORDER BY sayac DESC L' at line 1

hatası veriyor
 

 

mehmet01 mehmet01 WM Aracı Kullanıcı
  • Üyelik 12.03.2013
  • Yaş/Cinsiyet 32 / E
  • Meslek ...
  • Konum Adana
  • Ad Soyad M** Ç**
  • Mesajlar 665
  • Beğeniler 329 / 328
  • Ticaret 1, (%100)
Mysql'de Top fonksiyonu var mı benim bilgim yok. Şuan mobildeyim pek bakamıyorum da. Ben bu tür işlerimi şu sekilde hallediyorum:

SELECT oylar.anketno, COUNT(*) as sayac FROM (Select * from oylar as oylar2 GROUP BY oylar2.anketno ORDER BY oylar2.sayac DESC Limit 20) as oylar LIMIT 5

Top fonksiyonu varsa daha kolay olur tabi ama böyle bir sorgu icinde sorgu ile de bazı islerinizi halledebilirsiniz. İç sorguda 20 veri çekip gruplayıp listeliyoruz. Daha sonra çekilen 20 verinin 5 tanesini alıp listeliyoruz. Mobilden yazıyorum, kodu denemedim. Siz kendinize göre düzenlersiniz.
loss07

kişi bu mesajı beğendi.

loss07 loss07 WM Aracı Kullanıcı
  • Üyelik 25.03.2019
  • Yaş/Cinsiyet 28 / E
  • Meslek I-T
  • Konum Antalya
  • Ad Soyad S** U**
  • Mesajlar 72
  • Beğeniler 13 / 11
  • Ticaret 0, (%0)
SELECT anketno FROM `oylar` IN(SELECT anketno ,COUNT(*) as sayac FROM `oylar` GROUP BY anketno ORDER BY sayac DESC LIMIT 1) LIMIT 20

Şöyle bişey mantık olarak çalışması gerekiyor fakat sorgularken hata veriyor.
 

 

mehmet01 mehmet01 WM Aracı Kullanıcı
  • Üyelik 12.03.2013
  • Yaş/Cinsiyet 32 / E
  • Meslek ...
  • Konum Adana
  • Ad Soyad M** Ç**
  • Mesajlar 665
  • Beğeniler 329 / 328
  • Ticaret 1, (%100)
Anlayamadigim "IN" kısmı ne oluyor? İkincisi de iç sorguda limit 1 demişsiniz ama daha sonra 20 çekmeye çalışmışsınız. Bildiğim bir yöntem değil anlam veremedim ben.

Ayrıca iç sorguda da 'oylar' isimli bir stun var. Dış sorguda da aynı isimde var. İkisinden birinin ismini değiştirin. Benim ilk verdigim kod ne tür bir sorun çıkardı?
 

 

Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al