सौभाग्य से MySQL 4.0.0 के बाद से आप SQL_CALC_FOUND_ROWS
. का उपयोग कर सकते हैं आपकी क्वेरी में विकल्प जो MySQL को LIMIT
. की परवाह किए बिना पंक्तियों की कुल संख्या गिनने के लिए कहेगा खंड। पंक्ति गणना को पुनः प्राप्त करने के लिए आपको अभी भी दूसरी क्वेरी निष्पादित करने की आवश्यकता है, लेकिन यह एक साधारण क्वेरी है और आपकी क्वेरी जितनी जटिल नहीं है जिसने डेटा पुनर्प्राप्त किया है। उपयोग बहुत आसान है। आपकी मुख्य क्वेरी में आपको SQL_CALC_FOUND_ROWS
add जोड़ना होगा SELECT
. के ठीक बाद विकल्प और दूसरी क्वेरी में आपको FOUND_ROWS()
. का उपयोग करना होगा पंक्तियों की कुल संख्या प्राप्त करने के लिए कार्य। प्रश्न इस तरह दिखाई देंगे:
SELECT SQL_CALC_FOUND_ROWS name, email FROM users WHERE name LIKE 'a%' LIMIT 10;
SELECT FOUND_ROWS();
केवल सीमा यह है कि आपको पहली क्वेरी के तुरंत बाद दूसरी क्वेरी कॉल करनी चाहिए क्योंकि SQL_CALC_FOUND_ROWS
कहीं भी पंक्तियों की संख्या को सहेजता नहीं है। हालांकि इस समाधान के लिए दो प्रश्नों की भी आवश्यकता होती है, यह बहुत तेज़ है, क्योंकि आप मुख्य क्वेरी को केवल एक बार निष्पादित करते हैं। आप SQL_CALC_FOUND_ROWS और FOUND_ROWS()
MySQL डॉक्स में।
संपादित करें: आपको ध्यान देना चाहिए कि ज्यादातर मामलों में क्वेरी को दो बार चलाना वास्तव में SQL_CALC_FOUND_ROWS
से तेज़ है . देखें यहां
संपादित करें 2019:
<ब्लॉकक्वॉट>SQL_CALC_FOUND_ROWS क्वेरी संशोधक और साथ में FOUND_ROWS() फ़ंक्शन को MySQL 8.0.17 के रूप में हटा दिया गया है और भविष्य के MySQL संस्करण में हटा दिया जाएगा।
https://dev.mysql.com /doc/refman/8.0/hi/information-functions.html#function_found-rows
COUNT
. का उपयोग करने की अनुशंसा की जाती है इसके बजाय
SELECT * FROM tbl_name WHERE id > 100 LIMIT 10;
SELECT COUNT(*) WHERE id > 100;