Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL परिणाम सेट में पंक्तियों को कैसे सीमित करें

समस्या:

आप MySQL में सेट किए गए परिणाम में पंक्तियों की संख्या को सीमित करना चाहते हैं।

उदाहरण:

हमारे डेटाबेस में student कॉलम में डेटा के साथ id , first_name , last_name , और age

<थ>पहला_नाम
आईडी last_name उम्र
1 स्टीवन वाटसन 25
2 लिसा एंडरसन 19
3 एलिस मिलर 19
4 मैरी भूरा 25
5 लुसी वाटसन 25
6 माइकल जैक्सन 22

आइए छात्रों के पूरे नाम और उम्र का चयन करें, लेकिन वापस आने वाली पंक्तियों को तीन तक सीमित करें।

समाधान:

SELECT first_name, last_name, age
FROM student
LIMIT 3;

ये रहा क्वेरी का नतीजा:

<थ>पहला_नाम
आईडी last_name उम्र
1 स्टीवन वाटसन 25
2 लिसा एंडरसन 19
3 एलिस मिलर 19

चर्चा:

LIMIT क्लॉज परिणाम सेट में पंक्तियों की संख्या को सीमित करता है। इसका उपयोग सेलेक्ट स्टेटमेंट में किया जाता है, आमतौर पर स्टेटमेंट के अंत में। (यहां तक ​​कि ORDER BY को LIMIT से पहले सूचीबद्ध किया जाना चाहिए।)

केवल आवश्यक तर्क प्रदर्शित करने के लिए पंक्तियों की संख्या है। हमारे उदाहरण में, LIMIT 3 ने तीन पंक्तियों वाला एक परिणाम सेट तैयार किया। जब तक आप OFFSET तर्क के साथ अन्यथा निर्दिष्ट नहीं करते हैं, यह फ़ंक्शन हमेशा पहला n . लौटाएगा पंक्तियाँ जो क्वेरी आवश्यकताओं को पूरा करती हैं।

LIMIT का वैकल्पिक OFFSET तर्क लौटाई गई पंक्तियों की संख्या को इंगित करने वाले तर्क से पहले रखा गया है। यह LIMIT द्वारा लौटाई गई पहली पंक्ति की स्थिति को इंगित करता है (अर्थात '0' पहली पंक्ति है, 1 दूसरी पंक्ति है, आदि)। ऑफ़सेट और पंक्तियों की संख्या को अल्पविराम द्वारा अलग किया जाता है।

क्वेरी पिछली क्वेरी के समान रिकॉर्ड लौटाती है क्योंकि ऑफ़सेट शून्य है। (शून्य डिफ़ॉल्ट ऑफ़सेट मान है।)

SELECT first_name, last_name, age
FROM student
LIMIT 0, 3;

इन प्रश्नों में, परिणाम पंक्तियाँ अनियंत्रित हैं। यदि आप क्रमबद्ध परिणाम सेट से तीन पंक्तियों का चयन करना चाहते हैं, तो ORDER BY का उपयोग करें:

SELECT first_name, last_name, age
FROM student
ORDER BY age DESC, last_name, first_name
LIMIT 1,3;

यहां, हम पहले पंक्तियों को आयु (अवरोही), फिर अंतिम नाम, फिर प्रथम नाम के आधार पर क्रमित कर रहे हैं। हम दूसरी लौटाई गई पंक्ति पर शुरू करने के लिए ऑफ़सेट मान का उपयोग करते हैं और परिणामों को तीन पंक्तियों तक सीमित करते हैं:

<थ>पहला_नाम
last_name उम्र
लुसी वाटसन 25
स्टीवन वाटसन 25
माइकल जैक्सन 22

यह क्वेरी पहले आयु कॉलम के अनुसार अवरोही क्रम में पंक्तियों को क्रमबद्ध करती है। इसके बाद यह last_name . के अनुसार क्रमित करता है और first_name बढ़ते क्रम में। यदि आप तालिका को देखते हैं, तो आप देखेंगे कि सबसे पुराने छात्र (स्टीवन, लुसी, मैरी) 25 वर्ष के हैं। हालाँकि, मैरी को छोड़ दिया गया है क्योंकि वह पहली पंक्ति है और ऑफ़सेट 1 है (यानी हम दूसरी पंक्ति से शुरू कर रहे हैं)। लुसी अब पहले हैं क्योंकि उनका पहला नाम स्टीवन से पहले आता है। (स्टीवन और लुसी का उपनाम एक ही है, इसलिए उनका क्रम पहले नाम से निर्धारित होता है।) माइकल 22 वर्ष का है, जो उसे अगला सबसे बड़ा छात्र बनाता है और तीन पंक्तियों में से अंतिम वापस आ जाता है।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पूल में JDBC कनेक्शन बंद करना

  2. PHP कनेक्शन विफल:SQLSTATE [HY000] [2002] कनेक्शन ने मना कर दिया

  3. MySQL में सिंगल कोट्स, डबल कोट्स और बैकटिक्स का उपयोग कब करें

  4. वर्डप्रेस वेबसाइटों के लिए डेटाबेस विफलता

  5. मैं MySQL में BLOB से TEXT में कैसे परिवर्तित करूं?