MySQL क्वेरी में कुल पंक्ति संख्या प्राप्त करने के लिए सबक्वेरी के साथ COUNT(*) एग्रीगेट फ़ंक्शन का उपयोग करना एक कुशल तरीका है। यह प्रत्येक पंक्ति के साथ कुल संख्या दिखाता है बिना अलग क्वेरी चलाए।
उदाहरण तालिका बनाना और डेटा डालना
mysql> CREATE TABLE DemoTable (
StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
StudentFirstName VARCHAR(20),
StudentAge INT
);
mysql> INSERT INTO DemoTable (StudentFirstName, StudentAge) VALUES
-> ('John', 23), ('Larry', 21), ('Johnny', 23), ('Chris', 21),
-> ('David', 23), ('James', 21), ('Jace', 24), ('Mike', 21),
-> ('Robert', 25), ('Mike', 22);
सबक्वेरी के साथ कुल पंक्ति संख्या प्राप्त करना
mysql> SELECT StudentFirstName,
-> (SELECT COUNT(*) FROM DemoTable) AS Total_Count
-> FROM DemoTable LIMIT 10;
आउटपुट:
+------------------+-------------+ | StudentFirstName | Total_Count | +------------------+-------------+ | John | 10 | | Larry | 10 | | Johnny | 10 | | Chris | 10 | | David | 10 | | James | 10 | | Jace | 10 | | Mike | 10 | | Robert | 10 | | Mike | 10 | +------------------+-------------+
व्याख्या: सबक्वेरी (SELECT COUNT(*) FROM DemoTable) एक बार निष्पादित होती है और इसका परिणाम (10) मुख्य क्वेरी की प्रत्येक पंक्ति के लिए Total_Count कॉलम के रूप में दोहराया जाता है।
प्रदर्शन नोट: MySQL ऑप्टिमाइज़र अक्सर इस सबक्वेरी को कैश कर लेता है क्योंकि यह मुख्य क्वेरी के कॉलम पर निर्भर नहीं करती (अनकोरिलेटेड सबक्वेरी)। बड़े डेटासेट के लिए, SQL_CALC_FOUND_ROWS और FOUND_ROWS() का उपयोग करना या अलग COUNT(*) क्वेरी चलाना कभी-कभी अधिक कुशल हो सकता है, विशेष रूप से जब LIMIT का उपयोग किया जाता है।