MySQL में WHERE क्लॉज क्या है?
जहां MySQL में क्लॉज एक कीवर्ड है जिसका उपयोग डेटा या पंक्तियों के सटीक मानदंडों को निर्दिष्ट करने के लिए किया जाता है जो निर्दिष्ट SQL कथन से प्रभावित होंगे। WHERS क्लॉज का उपयोग INSERT, UPDATE, SELECT, और DELETE जैसे SQL स्टेटमेंट्स के साथ किया जा सकता है, जो रिकॉर्ड को फ़िल्टर करने और डेटा पर विभिन्न ऑपरेशन करने के लिए करते हैं।
हमने पिछले ट्यूटोरियल में सेलेक्ट स्टेटमेंट का उपयोग करते हुए डेटाबेस से डेटा क्वेरी करने के तरीके को देखा। सेलेक्ट किए गए डेटाबेस तालिका से SELECT स्टेटमेंट ने सभी परिणाम लौटा दिए।
हालांकि, ऐसे समय होते हैं जब हम क्वेरी परिणामों को एक निर्दिष्ट स्थिति तक सीमित रखना चाहते हैं। ऐसी स्थितियों में SQL में WHERE क्लॉज काम आता है।

जहां उपवाक्य वाक्य
जब MySQL Select WHERE स्टेटमेंट में उपयोग किया जाता है तो WHERE क्लॉज के लिए मूल सिंटैक्स निम्नानुसार है।
SELECT * FROM tableName WHERE condition;
यहां
- "SELECT * FROM tableName" मानक SELECT स्टेटमेंट है
- "WHERE" वह कीवर्ड है जो हमारे चुनिंदा क्वेरी परिणाम सेट को प्रतिबंधित करता है और "कंडीशन" परिणामों पर लागू होने वाला फ़िल्टर है। फ़िल्टर एक सीमा, एकल मान या उप क्वेरी हो सकता है।
आइए अब एक व्यावहारिक उदाहरण देखें ।
मान लीजिए कि हम सदस्यता नंबर 1 को दिए गए सदस्य तालिका से एक सदस्य के व्यक्तिगत विवरण प्राप्त करना चाहते हैं, तो हम इसे प्राप्त करने के लिए निम्न स्क्रिप्ट का उपयोग करेंगे।
SELECT * FROM `members` WHERE `membership_number` = 1;
"Myflixdb" पर MySQL कार्यक्षेत्र में उपरोक्त स्क्रिप्ट को निष्पादित करने से निम्नलिखित परिणाम प्राप्त होंगे।
membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | First Street Plot No 4 | Private Bag | 0759 253 542 | This email address is being protected from spambots. You need JavaScript enabled to view it. |
जहां - और तार्किक ऑपरेटर के साथ संयुक्त खंड
MySQL में WHERE की स्थिति और तार्किक ऑपरेटर के साथ एक साथ उपयोग किए जाने पर, केवल तभी निष्पादित की जाती है यदि निर्दिष्ट सभी फ़िल्टर मानदंड पूरे किए जाते हैं। आइए अब एक व्यावहारिक उदाहरण देखें - मान लीजिए कि हम श्रेणी 2 की सभी फिल्मों की एक सूची प्राप्त करना चाहते हैं जो 2008 में जारी की गई थीं, हम नीचे दी गई स्क्रिप्ट का उपयोग करेंगे जो कि प्राप्त होता है।
SELECT * FROM `movies` WHERE `category_id` = 2 AND `year_released` = 2008;
"Myflixdb" के खिलाफ MySQL कार्यक्षेत्र में उपरोक्त स्क्रिप्ट को निष्पादित करने से निम्न परिणाम उत्पन्न होते हैं।
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
2 | Forgetting Sarah Marshal | Nicholas Stoller | 2008 | 2 |
जहां - या संचालक के साथ संयुक्त खंड
जब OR ऑपरेटर के साथ मिलकर उपयोग किया जाता है, तो केवल तब ही निष्पादित किया जाता है जब कोई या संपूर्ण निर्दिष्ट फ़िल्टर मापदंड पूरा हो जाता है। निम्नलिखित स्क्रिप्ट को श्रेणी 1 या श्रेणी 2 में सभी फिल्में मिलती हैंSELECT * FROM `movies` WHERE `category_id` = 1 OR `category_id` = 2;
"Myflixdb" के खिलाफ MySQL कार्यक्षेत्र में उपरोक्त स्क्रिप्ट को निष्पादित करने से निम्न परिणाम उत्पन्न होते हैं।
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
1 | Pirates of the Caribean 4 | Rob Marshall | 2011 | 1 |
2 | Forgetting Sarah Marshal | Nicholas Stoller | 2008 | 2 |
कहां खंड के साथ संयुक्त - में कीवर्ड
MySQL क्लॉज में WHERE, जब IN कीवर्ड के साथ एक साथ प्रयोग किया जाता है, केवल उन पंक्तियों को प्रभावित करता है जिनके मान IN कीवर्ड में दिए गए मानों की सूची से मेल खाते हैं। MySQL IN स्टेटमेंट आपके द्वारा उपयोग किए जा सकने वाले OR क्लॉज़ की संख्या को कम करने में मदद करता है। निम्नलिखित MySQL WHERE IN क्वेरी उन पंक्तियों को देती है जहाँ membership_number या तो 1, 2 या 3 हैSELECT * FROM `members` WHERE `membership_number` IN (1,2,3);
"Myflixdb" के खिलाफ MySQL कार्यक्षेत्र में उपरोक्त स्क्रिप्ट को निष्पादित करने से निम्न परिणाम उत्पन्न होते हैं।
membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | First Street Plot No 4 | Private Bag | 0759 253 542 | This email address is being protected from spambots. You need JavaScript enabled to view it. |
2 | Janet Smith Jones | Female | 23-06-1980 | Melrose 123 | NULL | NULL | This email address is being protected from spambots. You need JavaScript enabled to view it. |
3 | Robert Phil | Male | 12-07-1989 | 3rd Street 34 | NULL | 12345 | This email address is being protected from spambots. You need JavaScript enabled to view it. |
कहाँ से जोड़ा गया है - कीवर्ड में नहीं
जब कीवर्ड के साथ प्रयोग नहीं किया जाता है तो यह खंड उन पंक्तियों को प्रभावित नहीं करता है जिनके मूल्य कीवर्ड में मौजूद मान की सूची से मेल खाते हैं। निम्न क्वेरी पंक्तियाँ देती है जहाँ सदस्यता_नंबर 1, 2 या 3 नहीं हैSELECT * FROM `members` WHERE `membership_number` NOT IN (1,2,3);
"Myflixdb" के खिलाफ MySQL कार्यक्षेत्र में उपरोक्त स्क्रिप्ट को निष्पादित करने से निम्न परिणाम उत्पन्न होते हैं।
membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
---|---|---|---|---|---|---|---|
4 | Gloria Williams | Female | 14-02-1984 | 2nd Street 23 | NULL | NULL | NULL |
जहां - साथ संयुक्त संचालक कॉमरेड संचालक
की तुलना में कम (), के बराबर (=), बराबर नहीं () तुलना ऑपरेटरों का उपयोग WHERE क्लॉज के साथ किया जा सकता है= समान
निम्न स्क्रिप्ट सभी महिला सदस्यों को सदस्य तालिका से तुलना ऑपरेटर के बराबर का उपयोग करके मिलती है।SELECT * FROM `members` WHERE `gender` = 'Female';
"Myflixdb" के खिलाफ MySQL कार्यक्षेत्र में उपरोक्त स्क्रिप्ट को निष्पादित करने से निम्न परिणाम उत्पन्न होते हैं।
membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | First Street Plot No 4 | Private Bag | 0759 253 542 | This email address is being protected from spambots. You need JavaScript enabled to view it. |
2 | Janet Smith Jones | Female | 23-06-1980 | Melrose 123 | NULL | NULL | This email address is being protected from spambots. You need JavaScript enabled to view it. |
4 | Gloria Williams | Female | 14-02-1984 | 2nd Street 23 | NULL | NULL | NULL |
> इससे बड़ा
निम्न स्क्रिप्ट में सभी भुगतान प्राप्त होते हैं जो भुगतान तालिका से 2,000 से अधिक हैं। का चयन करें * `भुगतानों से` `कहाँ` राशि_ भुगतान`> 2000; "Myflixdb" के खिलाफ MySQL कार्यक्षेत्र में उपरोक्त स्क्रिप्ट को निष्पादित करने से निम्नलिखित परिणाम प्राप्त होते हैं।payment_id | membership_number | payment_date | description | amount_paid | external_reference_number |
---|---|---|---|---|---|
1 | 1 | 23-07-2012 | Movie rental payment | 2500 | 11 |
3 | 3 | 30-07-2012 | Movie rental payment | 6000 | NULL |
<> नहीं के बराबर
निम्नलिखित स्क्रिप्ट को सभी फिल्में मिलती हैं जिनकी श्रेणी आईडी 1 नहीं है।SELECT * FROM `movies` WHERE `category_id`<> 1;"Myflixdb" के खिलाफ MySQL कार्यक्षेत्र में उपरोक्त स्क्रिप्ट को निष्पादित करने से निम्नलिखित परिणाम प्राप्त होते हैं।
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
2 | Forgetting Sarah Marshal | Nicholas Stoller | 2008 | 2 |
5 | Daddy's Little Girls | NULL | 2007 | 8 |
6 | Angels and Demons | NULL | 2007 | 6 |
7 | Davinci Code | NULL | 2007 | 6 |
9 | Honey mooners | John Schultz | 2005 | 8 |
सारांश
- SQL WHERE क्लॉज का उपयोग SELECT, UPDATE या DELETE क्वेरी से प्रभावित पंक्तियों की संख्या को सीमित करने के लिए किया जाता है।
- SQL में WHERE की स्थिति का उपयोग तार्किक ऑपरेटर जैसे AND और OR के साथ किया जा सकता है, तुलना ऑपरेटर जैसे, = आदि।
- AND लॉजिकल ऑपरेटर के साथ उपयोग किए जाने पर, सभी मानदंडों को पूरा करना होगा।
- जब OR लॉजिकल ऑपरेटर के साथ प्रयोग किया जाता है, तो कोई भी मापदंड पूरा होना चाहिए।
- मुख्य शब्द IN का उपयोग मूल्यों की सूची से मेल खाती पंक्तियों का चयन करने के लिए किया जाता है।
ब्रेन टीज़र आइए मान लें कि हम किराए की फिल्मों की एक सूची प्राप्त करना चाहते हैं जो 25/06/2012 को वापस नहीं हुई हैं। हम एसक्यूएल WHERE स्टेटमेंट क्लॉज का उपयोग तुलनात्मक ऑपरेटर और तार्किक ऑपरेटर की तुलना में कम करने के लिए कर सकते हैं।
SELECT * FROM `movierentals` WHERE `return_date` < '2012-06-25' AND movie_returned = 0;MySQL कार्यक्षेत्र में उपरोक्त स्क्रिप्ट को निष्पादित करने से निम्नलिखित परिणाम मिलते हैं।
reference_number | transaction_date | return_date | membership_number | movie_id | movie_returned |
---|---|---|---|---|---|
14 | 21-06-2012 | 24-06-2012 | 2 | 2 | 0 |