2011-06-15 14 views
5

हम तारीख के आधार पर खोजने के लिए एक SQL क्वेरी का उपयोग कर रहे हैं फ़ील्ड से तारीख और तारीख। इसके लिए मैं "बराबर (> =)" और "के बराबर से अधिक (< =)" ऑपरेटर दिनांक फ़ील्ड पर खोजने के लिए बराबर से अधिक का उपयोग कर रहा हूं। कहीं भी मुझे यह भी पता चलता है कि हम एसक्यूएल " के बीच" ऑपरेटर का उपयोग भी कर सकते हैं। बस पुष्टि करना चाहता था कि जब हम " के बीच" ऑपरेटर का उपयोग करते हैं और जब हम "(> = & < =)" ऑपरेटर का उपयोग करते हैं तो कोई अंतर होता है।ऑपरेटर के बीच एसक्यूएल में अंतर और "> =" और "<=" ऑपरेटर

+1

कौन सा डाटाबेस विक्रेता प्रयोग कर रहे हैं: अधिक जानकारी के लिए विनिर्देश (विधेय के बीच अध्याय 8.3) पढ़ा है? यह एक फर्क पड़ता है। –

+0

@ j.w.r मैं विकास के लिए MYSQL का उपयोग कर रहा हूं और उत्पादन के लिए यह ओरेकल है। –

+0

सूचना, डीबी 2, पोस्टरेएसक्यूएल, माईएसक्यूएल, एसक्लाइट, एमएस एसक्यूएल सर्वर, ओरेकल ... सभी समावेशी हैं, लेकिन मैं कसम खाता हूं कि एक बिंदु पर नहीं था। इसलिए, जैसा कि अन्य ने ध्यान दिया है, आपको ठीक होना चाहिए। :) –

उत्तर

3

आधुनिक डेटाबेस जहाज लेखन के समान है। उनकी मुख्य विशेषताएं में से एक क्वेरी रूपांतरण है। तार्किक रूप से समतुल्य अभिव्यक्तियों को आम तौर पर एक-दूसरे में परिवर्तित किया जा सकता है। जैसे जैसा कि एंथनी ने सुझाव दिया था, BETWEEN ऑपरेटर को ओरेकल (और MySQL) द्वारा दो AND-कनेक्ट की गई तुलना के रूप में फिर से लिखा जा सकता है, और इसके विपरीत, BETWEEN को सिंटैक्टिक चीनी के रूप में लागू नहीं किया गया है।

तो यदि कोई अंतर (प्रदर्शन में) होगा, तो आपको आश्वासन दिया जा सकता है कि ओरेकल शायद बेहतर विकल्प चुनने की संभावना है।

इसका मतलब है कि आप स्वतंत्र रूप से अपनी वरीयता चुन सकते हैं, उदा। पठनीयता की वजह से।

नोट: यह हमेशा स्पष्ट नहीं है, तर्कसंगत रूप से समतुल्य क्या है। EXISTS, IN, NOT EXISTS, NOT IN को बदलने के लिए क्वेरी परिवर्तन नियम अधिक जटिल हो जाते हैं ... लेकिन इस मामले में, वे हैं।

http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt

+0

धन्यवाद @ लुकास एडर –

3

कोई फर्क नहीं पड़ता कि कोई अंतर नहीं है (ORACLE का उपयोग करते समय) लेकिन BETWEEN ऑपरेटर का उपयोग करना एक सीमा के लिए मानों की तुलना करने का अधिक शानदार तरीका है।

5

कोई फर्क नहीं पड़ता।

(x BETWEEN y AND z) 

बहुत बुद्धिमान क्वेरी निष्पादन optimisers साथ

((x >= y) AND (x <= z)) 
+0

धन्यवाद @ एंथनीफूल –

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