दिलचस्प पोस्ट
रूबी में स्ट्रिंग कंसटेंनामेशन बनाम प्रक्षेप JSON ऑब्जेक्ट्स पर __प्रकार संपत्ति को क्रमबद्ध नहीं कैसे करें स्वत: पूर्ण पाठकदृश्य CursorLoader द्वारा समर्थित सी # के साथ HTTP पोस्ट के माध्यम से एक फाइल भेजें कस्टम प्रोटोकॉल समर्थित होने की जांच कैसे करें जेपीए 2.0, मापदंड एपीआई, उपकुंजीय, अभिव्यक्ति में सोलर में "मल्टिवल्यूड" फ़ील्ड प्रकार का क्या उपयोग है? JavaScript में त्रुटि का विस्तार करने का एक अच्छा तरीका क्या है? एंड्रॉइड एप्लिकेशन में दो क्लास के बीच स्ट्रिंग एआरिंग पास करना facet_wrap प्लॉट में "फ्लोटिंग" अक्ष लेबल जोड़ें PHP: एक श्रेणी के लिए एक सरणी बनाएँ विंडोज पर भरोसेमंद file.renameTo () विकल्प? आर में डेटा के लिए बहुपद मॉडल फिटिंग $ की डिफरेड की एक सरणी में पास करें। जब () मैं फिल्म के रूप में UIImage सरणी कैसे निर्यात करूं?

Sqlite LIMIT / OFFSET क्वेरी

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

Select * from Animals LIMIT 100 OFFSET 50 

तथा

 Select * from Animals LIMIT 100,50 

वेब के समाधान से एकत्रित समाधान "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 के लिए बदलती हैं