2011-04-23 14 views
12
SELECT name FROM mydb ORDER BY score DESC LIMIT 10 

क्वेरी ऊपर पहले 10 रैंक वापस आ जाएगी,mysql सीमा रेंज

कैसे LIMIT संशोधित करने के लिए, या हो सकता है एक और वाक्य रचना 20 वीं रैंक तक 10 वीं रैंक क्वेरी करने के लिए है?

उत्तर

3

सीमा भी एक ऑफसेट पैरामीटर

SELECT name FROM mydb ORDER BY score DESC LIMIT 10,10 
0
SET @rank = 0; 
SELECT rank, name, score 
FROM (
    SELECT @rank := @rank +1 AS rank, name, score 
    FROM mydb 
    ORDER BY score DESC 
    LIMIT 100 
) X 
WHERE rank >= 10; 
10

उपयोग offset क्वेरी स्पष्ट करने के लिए।

SELECT name FROM mydb ORDER BY score DESC LIMIT 10 OFFSET 10 
+0

OFFSET आप कोड में क्वेरी बना करने के लिए है जब निश्चित रूप से एक बेहतर विचार है। – qasimzee

1

आप उपयोग कर सकते हैं ऑफसेट

 
SELECT name FROM mydb ORDER BY score DESC LIMIT 10 OFFSET 10 
यहाँ

, ऑफसेट इंगित करता है कि जहां से अगले 10 डेटा दिखाएगा।

आप भी नीचे का उपयोग हो सकता है:

 
SELECT name FROM mydb ORDER BY score DESC LIMIT 10, 10 
+1

कृपया [एक समाधान प्रदान न करें जो पहले से ही किसी अन्य उत्तर से ढंका हुआ है] (// meta.stackexchange.com/a/192293/269535)। यदि आप किसी अन्य उत्तर से सहमत हैं, तो जब आपके पास पर्याप्त [प्रतिष्ठा] (// stackoverflow.com/help/whats-reputation) है तो आप इसे [upvote] कर सकते हैं (// stackoverflow.com/privileges/vote-up), जो है आपके समझौते को इंगित करने का स्टैक ओवरफ़्लो तरीका। यह भी देखें [उत्तर]। –

संबंधित मुद्दे