MYSQL LIMIT In Hindi | MYSQL OFFSET In Hindi


तो अभी तक हम table से सभी records लेकर आ रहे थे , क्या हो अगर हमें कुछ records चाहिए हो ? या फिर किसी particular index से किसी particular index तक records चहिये हों ?

Well , उसके लिए MySQL ने हमें LIMIT और OFFSTET का concept दिया है , जिसकी हम से हम need के according records get कर सकते हैं।

LIMIT Syntax

generally limit का syntax कुछ इस तरह से होता है।

SELECT select_list FROM table_name LIMIT [OFFSET] , no_of_records;
  • Offset : Offset का है , कितने records skip करने हैं।

  • no_of_records  : वो number जितने आपको records fetch करने हैं।

अगर आप offset pass नहीं करते हैं तो By default Offset 0 रहता है , मतलब एक भी record skip नहीं होगा , इसलिए नीचे दी गयी queries same हैं।

LIMIT 0,10; or LIMIT 10;

MySQL LIMIT Exmaple

Example के लिए मेरे users table में 6 records हैं , उनमे से अगर मुझे सिर्फ 3 records चाहिए तो query कुछ इस तरह से होगी।

SELECT id,name FROM users LIMIT 3;

Output

+----+-------------+
| id | name        |
+----+-------------+
|  1 | Tom         |
|  2 | Tom Holland |
|  3 | Tommy       |
+----+-------------+

MySQL OFFSET Example

अब अगर आपको किसी particular index से records चाहिए तो OFFSET का use कर सकते हैं।

SELECT id,name FROM users LIMIT 3 OFFSET 3;
+----+--------------+
| id | name         |
+----+--------------+
|  4 | john Doe     |
|  5 | Peter Quill  |
|  6 | Peter Parker |
+----+--------------+

MySQL LIMIT Use Case

अब कुछ real time use cases देख लेते हैं जहाँ पर LIMIT का use किया जाता है।

Get second highest or second highest salary

records से highest या second highest salary या marks निकलना बहुत common चीज़ है , इसे आप कुछ इस तरह से कर सकते हैं। इसके लिए LIMIT के साथ ORDER BY का use किया जाता है।

SELECT id,name,salary FROM users ORDER BY salary DESC LIMIT 1,1;

सबसे पहले salary को descending order में रखा , फिर 1 record जो कि highest salary वाला है उसे skip कर दिया जिससे हमें second highest salary वाला record मिल जायगा।

इसी तरह से second lowest record के लिए

SELECT id,name,salary FROM users ORDER BY salary ASC LIMIT 1,1;

बैसे किसी भी nth number के record को search करने के लिए नीचे दी गयी query syntax को follow कर सकते हैं -

SELECT column(s) FROM table_name ORDER BY coloumn [ASC|DESC] LIMIT n-1, 1;

अगर आपको lowest चाहिए तो ASC use करें और highest के लिए DESC , n वो number है जिस number का आपको record search करना है।

MySQL LIMIT for pagination

आपने हमारी website पर ही Blogs listing में pagination देखा होगा , जिसमे किसी particular page के ही records आते हैं , उसमे भी इसी तरह से records को fetch किया गया है ।

Suppose कीजिये आप हर बार 10 records show कराना चाहते हैं मतलब limit 10 है , तो सबसे पहले 1st page के record के लिए कोई record skip होगा नहीं तो उसके लिए query कुछ इस तरह से होगी।

SELECT column(s) FROM table LIMIT 0,10;

और 2nd page के लिए आपको पहले 10 records को skip करना रहेगा तो उसके लिए query कुछ इस तरह से रहेगी।

SELECT column(s) FROM table LIMIT 10,10;

इसी तरह से आपकी skip number page के according बढ़ता जाता है , हालाँकि same चीज़ को OFFSET का use करके भी कर सकते हैं।

Hey ! I'm Rahul founder of learnhindituts.com. Working in IT industry more than 4.5 years. I love to talk about programming as well as writing technical tutorials and blogs that can help to others .... keep learning :)

Get connected with me - LinkedIn Twitter Instagram Facebook