2011-06-13 14 views
5

क्या SQLite3 SELECT कथन से हिट की संख्या सीमित करने के लिए एक साफ तरीका है?SQLite3 और परिणामों की संख्या को सीमित करने

उदाहरण के लिए, मैं SELECT * FROM myTable WHERE name='Smith'; से पूछताछ कर सकता हूं कि मुझे हजारों हिट मिल सकती हैं। मैं SQLite3 चाहता हूं कि मुझे पहले 10 मुठभेड़ों का कहना है और फिर क्वेरी को समाप्त कर दें। मैं यह कैसे करु?

यदि SQLite3 तुरंत यह प्रदान नहीं करता है, तो क्या मैं कुछ भी SQLite3 स्रोत कोड में संपादित कर सकता हूं जिससे मैं पुनर्निर्माण कर सकता हूं?

मान लीजिए कि मैं ऐसे माहौल में हूं जहां मेरे पास केवल एक धागा है और मैं उचित समय पर नियंत्रण करना चाहता हूं।

SELECT * FROM myTable WHERE name='Smith' LIMIT 10 
+0

@ सभी: धन्यवाद - मैं आपके प्रत्येक उत्तर को स्वीकार करना चाहता हूं। – SK9

उत्तर

10

आप LIMIT खंड के लिए देख रहे OFFSET भी पर

select * from sometable where .... limit 10; 

देखो, पेजिंग परिणामों के लिए सहायक हो सकता है: वहाँ एक LIMIT कीवर्ड है । (इसके अलावा इन अक्सर एक ORDER BY खंड के साथ संयुक्त कर रहे हैं यदि आप प्रश्नों भर में लगातार परिणाम चाहते हैं।)

3

SQLite docs से:

सीमा खंड द्वारा वापस पंक्तियों की संख्या पर एक ऊपरी बाध्य जगह प्रयोग किया जाता है एक चयन कथन। किसी भी स्केलर अभिव्यक्ति का उपयोग LIMIT क्लॉज में किया जा सकता है, जब तक कि यह एक पूर्णांक या मान का मूल्यांकन करता है जिसे लापरवाही से पूर्णांक में परिवर्तित किया जा सकता है। यदि अभिव्यक्ति एक पूर्ण मान या किसी अन्य मान का मूल्यांकन करती है जिसे हानि रहित रूप से पूर्णांक में परिवर्तित नहीं किया जा सकता है, तो एक त्रुटि लौटा दी जाती है। यदि LIMIT अभिव्यक्ति ऋणात्मक मान का मूल्यांकन करती है, तो वापस पंक्तियों की संख्या पर कोई ऊपरी सीमा नहीं है। अन्यथा, SELECT केवल अपने परिणाम सेट की पहली एन पंक्तियां लौटाता है, जहां एन वह मान है जो LIMIT अभिव्यक्ति का मूल्यांकन करता है। या, यदि SELECT कथन LIMIT खंड के बिना एन पंक्तियों से कम वापस आ जाएगा, तो पूरा परिणाम सेट वापस कर दिया जाएगा।

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

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