दिलचस्प पोस्ट
fragment में enableAutoManage () का उपयोग कर कैसे दो बीएसटी कुशलता से मर्ज करने के लिए? एंड्रॉइड पर मैं ऑब्जेक्ट को एक गतिविधि से दूसरे में कैसे पारित कर सकता हूं? यू प्रत्यय का अर्थ जब वापस ढेर में जोड़ा गया तो मैं टुकड़ा राज्य कैसे बनाए रख सकता हूं? माउस व्हील इनपुट को नियंत्रित करने के बजाए कर्सर के नीचे नियंत्रित करने के लिए कैसे करें? बाइट को SQL Server डेटाबेस से सी # सहेजें धीमी ग्राहक अनुकरण करने के लिए जावास्क्रिप्ट प्रदर्शन को दबाने का कोई तरीका क्या है? जावास्क्रिप्ट – अगली पंक्ति निष्पादित करने से पहले 5 सेकंड रुको किसी दिए गए पैकेज में एनोटेट किए गए तरीकों को कैसे खोजें? क्या हम अपने एंड्रॉइड ऐप में क्रोम ब्राउज़िंग इतिहास / बुकमार्क्स प्राप्त कर सकते हैं सरणी के सभी सबसेट कैसे प्राप्त करें? आप बाश में 4 अंकों वाले यूनिकोड वर्ण कैसे गूंजते हैं? सभी कैप (अंडरस्कोर द्वारा अलग किए गए शब्द) से कैमेरा को सीज़ेल (कोई शब्द विभाजक) में परिवर्तित करने का सबसे आसान तरीका क्या है? <स्क्रिप्ट प्रकार = "टेक्स्ट / टेम्पलेट"> … </ script> का स्पष्टीकरण

Sqlite LIMIT / OFFSET क्वेरी

मेरे पास Sqlite के साथ सरल सवाल है इस बीच अंतर क्या है:

Select * from Animals LIMIT 100 OFFSET 50 

तथा

 Select * from Animals LIMIT 100,50 

Solutions Collecting From Web of "Sqlite LIMIT / OFFSET क्वेरी"

दो वाक्यविन्यास रूपों में थोड़ा भ्रमित होता है क्योंकि वे संख्याओं को उल्टा करते हैं:

 LIMIT <skip>, <count> 

के बराबर है:

 LIMIT <count> OFFSET <skip> 

यह MySQL और PostgreSQL से वाक्य रचना के साथ संगत है। MySQL दोनों वाक्यविन्यास रूपों का समर्थन करता है, और इसके डॉक्स का दावा है कि OFFSET के साथ दूसरा सिंटैक्स PostgreSQL के साथ संगतता प्रदान करने के लिए था। पोस्टग्रेएसक्यूएल डॉक्स से पता चलता है कि यह केवल दूसरी सिंटैक्स का समर्थन करता है, और SQLite के डॉक्स दिखाते हैं कि यह दोनों का समर्थन करता है, भ्रम से बचने के लिए दूसरी सिंटैक्स की सिफारिश करता है।

वैसे, पहले ORDER BY का उपयोग करने के बिना सीआरआइएम का उपयोग करते हुए हमेशा आपको आपके द्वारा अपेक्षित परिणाम नहीं दे सकते। व्यवहार में, SQLite कुछ क्रम में पंक्तियों को वापस लौटाएगा, संभवत: यह निर्धारित करती है कि वे फ़ाइल में कैसे भौतिक रूप से संग्रहीत हैं। लेकिन यह जरूरी नहीं है कि यह आपके इच्छित क्रम में है एक अनुमानित आदेश प्राप्त करने का एकमात्र तरीका स्पष्ट रूप से ORDER का उपयोग करना है।

उत्तरार्द्ध एक चेतावनी के साथ एक वैकल्पिक वाक्यविन्यास है:

यदि ऑफसेट खोजशब्द के बजाय एक अल्पविराम प्रयोग किया जाता है, तो ऑफ़सेट पहला नंबर होता है और सीमा दूसरी संख्या है। यह प्रतीत होता है कि विरोधाभास जानबूझकर है – यह लीगेसी एसक्यूएल डाटाबेस सिस्टम के साथ संगतता को अधिकतम करता है।

मैंने कुछ परीक्षण किए और प्रदर्शन में कोई अंतर नहीं है।

यह केवल अन्य एसक्यूएल भाषाओं के साथ संगतता के लिए है

दोनों संस्करणों का चलने का समय समान है।

मैंने 100,000 पंक्तियों के साथ तालिका 1 के साथ स्क्लिट डीबी बनाया। मैं अगले परीक्षा चलाऊंगा

 long timeLimitOffset = 0; long timeLimitComma = 0; for (int i = 0; i < 100000; i++) { //first version timeLimitOffset += SqlDuraction("Select * from table1 order by col1 LIMIT " + (i + 1) + " OFFSET " + (1001 - i) + ""); // second version timeLimitComma += SqlDuraction("Select * from table1 order by col1 LIMIT " + (1001 - i) + " , " + (i + 1) + ""); } 

टाइम्स एक दूसरे के 0.001 के लिए बदलती हैं