DMRY.NET’e Hoşgeldiniz
Nerdeyim? GirişMySQL › MySQL sorgusunda LIMIT kullanırken toplam satır sayısını bulmak

PHP ve MySQL ile veritabanı işlemlerine girdiğinizde bu tarz bir uygulama ile karşılaşacaksınız. Nerede derseniz de, en çok verileri sayfalama işlemlerinde elbet. Bu noktada, performans açısından öğrenmeniz gereken bir sorgu var. Çok işinize yarayacak. Buyurun bakalım :)

Normalde, MySQL sorgusundaki toplam satır sayısı nasıl bulunur?

Normal seviyedeki kullanıcılar bu işlemi alttaki sorgular ile gerçekleştirecektir.

SELECT COUNT(*) FROM sehir WHERE sehir_ad LIKE 'a%';
SELECT sehir_ad, tel_kod FROM sehir WHERE sehir_ad LIKE 'a%' LIMIT 0,2;

Buradaki ilk sorgu ile koşulumuza uyan tüm şehir isimlerini bulduk. Hani sayfalama bölümü yapacağız ve bu sorguya uyan toplam veri adeti lazım, işte burada bulduk onu.

Sıra geldi listelemeye. Ancak hepsini değil, sadece ikişer ikişer listelemek istiyoruz. O nedenle ilk 2 veriyi aldık.

Genelde yukarıdaki mantıkla bu işlem yürütülür. Ancak ilk satırda toplam veri adetini bulmak için yaptığımız sorgu, sistemi yoracaktır. O nedenle alttaki yöntem performans açısından en güzeli ;)

Daha performanslı bir sorgu

Üstteki sorgumu alttaki gibi değiştiriyorum.

SELECT SQL_CALC_FOUND_ROWS sehir_ad, tel_kod FROM sehir WHERE sehir_ad LIKE 'a%' LIMIT 0,2;
SELECT FOUND_ROWS();

Bu kez ilk satırın başına SQL_CALC_FOUND_ROWS ekledim ve sorgu koşuluma uyan 2 satırı çektim. İkinci satırda ise özel bir sorgu yaptım. MySQL 4 sürümü ile birlikte gelen FOUND_ROWS kullandım. İlk sorgumuz yapılıyor ve sadece 2 adet veri çekiliyor. Ancak başına eklediğim SQL_CALC_FOUND_ROWS terimi sayesinde, bu koşula uyan toplam veri sayısı da hafızaya alınıyor. Hemen ardından yaptığım (ki bu önemli, önceki sorgudan hemen sonra yapılması gerekiyor) FOUND_ROWS sorgusu ile de hafızadaki toplam veri değerini aldım.

Bu yazı 6 Ağustos 2008, 15:29 tarihinde yazılmış olup bu zamana kadar 406 kez görüntülenmiştir

Bu yazı 4 adet yorum almıştır ve bunların tamamı görüntülenmektedir.

#4 – 24 Ağustos 2008 , 01:56

:!: Kendi sitemde bu yöntemin PHP içinde nasıl kullanılacağını anlattım belki lazım olur birilerine.
http://www.mtrcn.com/mysql-ve-.....sayfalama/

  • Yorumlar: 4
  • İlk Yorum:
    30 Nis. 2008
#3 – 16 Ağustos 2008 , 00:02

annaa super bısı ya bu bole birseyın olacagını hıc sanmıyordum… :?:

  • Yorumlar: 1
  • İlk Yorum:
    16 Ağu. 2008
#2 – 07 Ağustos 2008 , 08:10

Gerçekten çok şık bir yöntemmiş. Öğrendiğim çok iyi oldu. Teşekkürler.

  • Yorumlar: 7
  • İlk Yorum:
    17 Ağu. 2007
#1 – 06 Ağustos 2008 , 16:15

Ve böylece oldukça sayfalama olayını oldukça basit bir şekilde yapabiliriz ;) Güzel bir yazı olmuş. Kullanacağımdan emin olabilirsin, ellerine sağlık ;)

  • Yorumlar: 57
  • İlk Yorum:
    01 Oca. 2006
YAZIYI BEĞENDİN Mİ?

Yazını çok beğendim. Yeni yazılarının e-posta adresime gelmesini istiyorum :)

Haberler RSS Yorumlar RSS

© 2009 Tüm hakları dmRy.net'e aittir.
Kullanım şartları yerine getirilmeden hiçbir şekilde kopyala-yapıştır yapılamaz, yazılar ve bilgiler kullanılamaz.