EXISTS बताता है कि क्वेरी ने परिणाम लौटाया है या नहीं, जबकि IN का उपयोग एक मान की दूसरे के साथ तुलना करने के लिए किया जा सकता है। IN शाब्दिक मूल्यों का उपयोग करता है।
नोट - जब भी कोई सबक्वेरी परिणाम बहुत छोटा होता है, तो सबक्वेरी में IN को प्राथमिकता दी जाती है। यदि सबक्वेरी परिणाम बहुत बड़ा है तो EXISTS का उपयोग किया जाता है।
चूंकि छोटे सबक्वेरी परिणामों के लिए IN एक पसंदीदा विकल्प है, इसलिए हम IN के एक उदाहरण पर विचार कर रहे हैं।
तालिका बनाने के लिए।
mysql> तालिका बनाएं InSubQueryDemo -> ( -> PNumber int, -> PName varchar(100) -> );क्वेरी ठीक है, 0 पंक्तियाँ प्रभावित (0.60 सेकंड)
तालिका में रिकॉर्ड सम्मिलित करना।
mysql> InSubQueryDemo मानों (1, 'लैपटॉप') में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.17 सेकंड) mysql> InSubQueryDemo मानों में डालें (2, 'वायरलेसकीबोर्ड'); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.21 सेकंड) )mysql> InSubQueryDemo मानों में डालें(3,'वायरलेसमाउस'); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.12 सेकंड)
सभी रिकॉर्ड प्रदर्शित करना।
mysql> InSubQueryDemo से *चुनें;
निम्न आउटपुट है।
<पूर्व>+------+---------------------+| पीएनंबर | PName |+------+---------------------+| 1 | लैपटॉप || 2 | वायरलेसकीबोर्ड || 3 | वायरलेसमाउस |+-----------+---------------------+3 पंक्तियाँ सेट में (0.00 सेकंड)IN के लिए सिंटैक्स निम्नलिखित है, जिसमें 1 से अधिक "PNumber" लाने के लिए एक सबक्वेरी शामिल है।
mysql> InSubQueryDemo से * चुनें -> जहां PNumber IN (InSubQueryDemo से PNumber चुनें जहां PNumber> 1);
यहाँ आउटपुट है।
<पूर्व>+------+---------------------+| पीएनंबर | PName |+------+---------------------+| 2 | वायरलेसकीबोर्ड || 3 | वायरलेसमाउस |+-----------+---------------------+2 पंक्तियों में सेट (0.04 सेकंड)