Bildiğiniz üzere MySQL’de en etkili sayfalama metodlarından biri SQL cümleciği içinde LIMIT kullanmaktadır.
Ancak yine bu limit özelliği nedeniyle tüm kayıtlarla ilgili bilgi gelmediğinden sıkıntı yaşanır:
Ya sayfalama yaparken tüm kayıtları her defasında okumak (1 milyon kayıt olan bir tabloda işlem yaptığınızı, ve SQL sunucunuzun uzak bir lokasyonda olduğunu hayal edin)
Ya da ikinci bir sorgu yapmak gerekli olur.
Oysa MySQL’e ekleyeceğiniz kısa bir fonksiyon ile limit kullanılmadan önceki kayıt sayısını da rahatlıkla alabilir, böylece işlem yapacağınız SQL sayısını bire düşürürken; bütün kayıtları da boşuna getirmemiş olursunuz.
Bu işlemi yapabileceğiniz SQL fonksiyonu SQL_CALC_FOUND_ROWS‘dur.
Aşağıdaki şekilde kullanım yaptığınızda ilk sırada gelecek değerin toplam kayıt sayısı olduğunu görebilirsiniz:
SELECT SQL_CALC_FOUND_ROWS, * FROM tablo WHERE sehir=‘İstanbul’ LIMIT 10
















