MySQL में OFFSET के साथ LIMIT का उपयोग करते समय कौन सी पंक्तियाँ वापस आ जाती हैं?


140

नीचे दिए गए प्रश्न में:

SELECT column 
FROM table
LIMIT 18 OFFSET 8

कितने परिणाम हमें आउटपुट के रूप में और कहाँ से कहाँ तक मिलेंगे?


आदेश की आवश्यकता पहले है, फिर OFFSET। नहीं तो यह एक त्रुटि फेंक देंगे।
मौसेर

जवाबों:


189

यह रिकॉर्ड # 9 पर शुरू होने और रिकॉर्ड # 26 पर खत्म होने के 18 परिणाम लौटाएगा।

से क्वेरी पढ़कर प्रारंभ करें offset। पहले आप 8 से ऑफसेट करते हैं, जिसका अर्थ है कि आप क्वेरी के पहले 8 परिणामों को छोड़ देते हैं। फिर आप 18 तक सीमित करते हैं। आप 9, 10, 11, 12, 13, 14, 15, 16 .... 24, 25, 26 के रिकॉर्ड पर विचार करते हैं, जो कुल 18 रिकॉर्ड हैं।

चेक इस बाहर।

और आधिकारिक दस्तावेज भी ।


यू सही हैं, क्या कोई अंतर है b / w सीमा 8,18 और सीमा 18 ऑफसेट 8
अरुण किल्लू

26
नहीं, ऐसा ही है। LIMIT 8, 18सिर्फ एक शॉर्टकट है
Mosty Mostacho

1
सबसे अच्छा जवाब जैसा कि मैं भी भ्रमित था मैं सोच रहा था कि यह दो अंकों के बीच डेटा लौटाता है लेकिन अब इसका स्पष्ट :)
MR_AMDEV

47

OFFSET तालिका में कर्सर शुरू करने का संकेत देने के लिए एक कीवर्ड के अलावा कुछ नहीं है

SELECT column FROM table LIMIT 18 OFFSET 8 -- fetch 18 records, begin with record 9 (OFFSET 8)

आपको समान परिणाम मिलेगा

SELECT column FROM table LIMIT 8, 18

दृश्य प्रतिनिधित्व ( Rकिसी क्रम में तालिका में एक रिकॉर्ड है)

 OFFSET        LIMIT          rest of the table
 __||__   _______||_______   __||__
/      \ /                \ /
RRRRRRRR RRRRRRRRRRRRRRRRRR RRRR...
         \________________/
                 ||
             your result

3

columnजैसा कि आपने OFFSET8 के रूप में उल्लेख किया है, आपको 9 से 26 तक आउटपुट मिलेगा

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.