समस्या:
आप एक स्ट्रिंग में एक पैटर्न से मेल खाने वाले सबस्ट्रिंग को ढूंढना चाहेंगे।
उदाहरण:
हमारे डेटाबेस में निम्नलिखित कॉलम में डेटा के साथ ग्राहक नाम की एक टेबल है:id
, first_name
, last_name
, और city
।
आईडी | <थ>प्रथम_नामlast_name | शहर | |
---|---|---|---|
1 | एलन | वाटसन | मैड्रिड |
2 | लिसा | काला | सिंगापुर |
3 | लौरा | विलियम्स | सिएटल |
4 | मिलान | ईंट | सियोल |
आइए SQL में पैटर्न मिलान के कुछ उदाहरण देखें।
उदाहरण 1:
आइए प्रत्येक ग्राहक का पहला नाम, अंतिम नाम और शहर प्रदर्शित करें जिसका शहर का नाम 'S' अक्षर से शुरू होता है।
समाधान:
SELECT last_name, first_name, city FROM customer WHERE city LIKE 'S%';
last_name | <थ>प्रथम_नामशहर | |
---|---|---|
लिसा | काला | S सिंगापुर |
मिलान | ईंट | S ईओल |
लौरा | विलियम्स | S खाना |
हमने % वाइल्डकार्ड का उपयोग किया, जो शून्य या अधिक अज्ञात वर्णों का प्रतिनिधित्व करता है। इस वाइल्डकार्ड को स्ट्रिंग में कहीं भी इस्तेमाल किया जा सकता है।
उदाहरण 2:
आइए प्रत्येक ग्राहक का पहला नाम, अंतिम नाम और शहर दिखाएं, जिसके शहर के नाम में ठीक पांच वर्ण हैं।
समाधान:
SELECT last_name, first_name, city FROM customer WHERE city LIKE '_____';
ये रहा परिणाम:
last_name | <थ>प्रथम_नामशहर | |
---|---|---|
मिलान | ईंट | सियोल |
अंडरस्कोर वाइल्डकार्ड का उपयोग एक अज्ञात चरित्र का प्रतिनिधित्व करने के लिए किया जा सकता है। इस प्रकार, उनमें से पांच का एक पंक्ति में उपयोग करके, हम उन सभी स्ट्रिंग्स का प्रतिनिधित्व कर सकते हैं जो पांच वर्ण लंबी हैं। हमारे उदाहरण में, उस विवरण से मेल खाने वाला एकमात्र शहर सियोल है।
उदाहरण 3:
आइए प्रत्येक ग्राहक का पहला नाम, अंतिम नाम और शहर दिखाएं, जिसका शहर 'S' अक्षर से शुरू होता है और तीसरे से अंतिम वर्ण के रूप में 'o' अक्षर होता है।
समाधान:
SELECT last_name, first_name, city FROM customer WHERE city LIKE 'S%o__';
ये रहा परिणाम:
last_name | <थ>प्रथम_नामशहर | |
---|---|---|
लिसा | काला | S इंगैपओ पुनः |
मिलान | ईंट | S ईओ उल |
क्वेरी ने केवल दो रिकॉर्ड लौटाए:S . से लिसा ब्लैक इंगैपओ S . से रे और मिलान ब्रिक ईओ उल. ये शहर दिए गए पैटर्न से मेल खाते हैं। यहां, हमने एक अधिक विशिष्ट पैटर्न उत्पन्न करने के लिए दोनों वाइल्डकार्ड को संयोजित किया:सभी स्ट्रिंग्स एक बड़े अक्षर 'S' से शुरू होती हैं और उसके बाद किसी भी संख्या में अन्य वर्णों को शामिल करती हैं, जब तक कि तीसरा-से-अंतिम वर्ण एक लोअरकेस अक्षर 'o' है। '
चर्चा:
यदि आप उन रिकॉर्ड्स का चयन करना चाहते हैं जिनमें एक स्ट्रिंग एक विशिष्ट पैटर्न से मेल खाती है, तो आप LIKE
. का उपयोग कर सकते हैं एक WHERE
. में शर्त के रूप में क्लॉज खंड। WHERE
के बाद , कॉलम का नाम सूचीबद्ध करें (उदा., city
) उसके बाद LIKE
स्ट्रिंग पैटर्न को निर्दिष्ट करने वाला खंड (उदा., 'S%o__'
) खोजने के लिए।
जैसा कि हमने उदाहरणों में देखा, आप वाइल्डकार्ड . नामक दो विशेष वर्णों का उपयोग कर सकते हैं अज्ञात वर्णों का प्रतिनिधित्व करने के लिए:
- '%' वाइल्डकार्ड शून्य या अधिक वर्णों को दर्शाता है।
- '_' वाइल्डकार्ड किसी एक वर्ण को दर्शाता है।
आप वास्तव में कुछ शक्तिशाली परिणाम प्राप्त करने के लिए इन वाइल्डकार्ड को जोड़ सकते हैं। आप एक से अधिक LIKE
. को भी चेन कर सकते हैं स्थिति। अंत में, आप NOT
. का उपयोग कर सकते हैं ऑपरेटर उन स्ट्रिंग्स को खोजने के लिए जो नहीं दिए गए पैटर्न का मिलान करें।