MySQL में SQL_CALC_FOUND_ROWS का उपयोग करके कुल पंक्तियाँ गिनना
जब आप LIMIT का उपयोग करते हैं, तो केवल सीमित पंक्तियाँ लौटाई जाती हैं। कुल पंक्तियों की संख्या जानने के लिए SQL_CALC_FOUND_ROWS का उपयोग करें।
सिंटैक्स
SELECT SQL_CALC_FOUND_ROWS * FROM yourTableName LIMIT offset, count;
फिर कुल संख्या प्राप्त करें:
SELECT FOUND_ROWS();
उदाहरण
टेबल बनाएं:
mysql> create table RowsUsingLimit (
-> Id int NOT NULL,
-> Name varchar(10)
-> );
डेटा डालें:
mysql> insert into RowsUsingLimit values(10, 'Larry'); mysql> insert into RowsUsingLimit values(9, 'Mike'); mysql> insert into RowsUsingLimit values(15, 'Sam'); mysql> insert into RowsUsingLimit values(20, 'Bob'); mysql> insert into RowsUsingLimit values(1, 'Carol'); mysql> insert into RowsUsingLimit values(18, 'David');
LIMIT के साथ क्वेरी:
mysql> select SQL_CALC_FOUND_ROWS * FROM RowsUsingLimit LIMIT 0, 6;
कुल पंक्तियाँ प्राप्त करें:
mysql> SELECT FOUND_ROWS();
महत्वपूर्ण नोट्स
SQL_CALC_FOUND_ROWSMySQL को सभी पंक्तियाँ गिनने के लिए कहता है, भले ही LIMIT लगा होFOUND_ROWS()तुरंत बाद चलाना चाहिए (अगले क्वेरी में)- यह
SELECT COUNT(*)से तेज़ हो सकता है क्योंकि यह उसी क्वेरी में गिनती करता है - MySQL 8.0.17+ में
SQL_CALC_FOUND_ROWSडिप्रिकेटेड है; विंडो फ़ंक्शनCOUNT(*) OVER()का उपयोग करें
आधुनिक विकल्प (MySQL 8.0+)
SELECT *, COUNT(*) OVER() AS total_rows FROM yourTableName LIMIT offset, count;