Database
 sql >> डेटाबेस >  >> RDS >> Database

शुरुआती के लिए SQL LIKE ऑपरेटर

SQL में, LIKE ऑपरेटर आपको पैटर्न मिलान करने की अनुमति देता है। यह निर्धारित करता है कि एक विशिष्ट वर्ण स्ट्रिंग एक निर्दिष्ट पैटर्न से मेल खाती है या नहीं।

एक पैटर्न में नियमित वर्ण और वाइल्डकार्ड वर्ण शामिल हो सकते हैं।

स्रोत तालिका

इस पृष्ठ पर उदाहरणों के लिए निम्न तालिका का उपयोग किया गया है।

SELECT * FROM Owners;

परिणाम:

+-----------+-------------+------------+----------------+-------------------+
| OwnerId   | FirstName   | LastName   | Phone          | Email             |
|-----------+-------------+------------+----------------+-------------------|
| 1         | Homer       | Connery    | (308) 555-0100 | example@sqldat.com |
| 2         | Bart        | Pitt       | (231) 465-3497 | example@sqldat.com  |
| 3         | Nancy       | Simpson    | (489) 591-0408 | NULL              |
| 4         | Boris       | Trump      | (349) 611-8908 | NULL              |
| 5         | Woody       | Eastwood   | (308) 555-0112 | example@sqldat.com |
| 6         | Burt        | Tyson      | (309) 565-0112 | example@sqldat.com  |
+-----------+-------------+------------+----------------+-------------------+

उदाहरण

यह दिखाने के लिए यहां एक उदाहरण दिया गया है कि कैसे LIKE ऑपरेटर काम करता है।

SELECT 
    FirstName,
    LastName,
    Email
FROM Owners
WHERE Email LIKE '%.com';

परिणाम:

+-------------+------------+-------------------+
| FirstName   | LastName   | Email             |
|-------------+------------+-------------------|
| Homer       | Connery    | example@sqldat.com |
| Bart        | Pitt       | example@sqldat.com  |
| Woody       | Eastwood   | example@sqldat.com |
+-------------+------------+-------------------+

इस उदाहरण में, मैंने LIKE . का उपयोग किया है % . के साथ संचालिका वाइल्डकार्ड ऑपरेटर उन मालिकों को लौटाएगा जिनके ईमेल पते .com . में समाप्त होते हैं ।

LIKE अन्य स्ट्रिंग ऑपरेटरों के साथ भी इस्तेमाल किया जा सकता है, जैसे _ , [] , और [^]

% वाइल्डकार्ड ऑपरेटर

% वाइल्डकार्ड ऑपरेटर शून्य या अधिक वर्णों की किसी भी स्ट्रिंग से मेल खाता है। इसका उपयोग उपसर्ग या प्रत्यय के रूप में किया जा सकता है, और इसका उपयोग स्ट्रिंग के बीच में भी किया जा सकता है।

यह आमतौर पर प्रत्यय के रूप में अधिक उपयोग किया जाता है, और पैटर्न के बीच में इसका सीमित उपयोग होता है, हालांकि पैटर्न के बीच में इसका उपयोग करने के लिए कुछ वैध उपयोग-मामले हैं, जैसे कि निम्न:

SELECT 
    FirstName,
    LastName,
    Email
FROM Owners
WHERE Email LIKE 'example@sqldat.com%.com';

परिणाम:

+-------------+------------+------------------+
| FirstName   | LastName   | Email            |
|-------------+------------+------------------|
| Bart        | Pitt       | example@sqldat.com |
+-------------+------------+------------------+

इस मामले में, हमें बार्ट का ईमेल पता नहीं पता था, लेकिन हमें पता था कि यह example@sqldat.com से शुरू हुआ था। और .com . में समाप्त हुआ . इसलिए, हम LIKE . का उपयोग करने में सक्षम थे % . के संयोजन में बाकी को भरने के लिए वाइल्डकार्ड ऑपरेटर।

ध्यान रखें कि यह तकनीक डेटा के आधार पर और आप अपने SQL स्टेटमेंट को कैसे बनाते हैं, इसके आधार पर बहुत सारी अप्रासंगिक पंक्तियाँ लौटा सकती हैं।

_ वाइल्डकार्ड ऑपरेटर

अंडरस्कोर (_ ) वाइल्डकार्ड ऑपरेटर किसी एक वर्ण से मेल खाता है।

SELECT 
    FirstName,
    LastName,
    Email
FROM Owners
WHERE FirstName LIKE 'b_rt';

परिणाम:

+-------------+------------+------------------+
| FirstName   | LastName   | Email            |
|-------------+------------+------------------|
| Bart        | Pitt       | example@sqldat.com |
| Burt        | Tyson      | example@sqldat.com |
+-------------+------------+------------------+

[] वाइल्डकार्ड ऑपरेटर

कोष्ठक ([] ) वाइल्डकार्ड ऑपरेटर निर्दिष्ट सीमा या सेट के भीतर किसी एकल वर्ण से मेल खाता है जो कि कोष्ठक के बीच निर्दिष्ट है।

SELECT 
    FirstName,
    LastName,
    Email
FROM Owners
WHERE FirstName LIKE '[bh]%';

परिणाम:

+-------------+------------+-------------------+
| FirstName   | LastName   | Email             |
|-------------+------------+-------------------|
| Homer       | Connery    | example@sqldat.com |
| Bart        | Pitt       | example@sqldat.com  |
| Boris       | Trump      | NULL              |
| Burt        | Tyson      | example@sqldat.com  |
+-------------+------------+-------------------+

यहां, मैंने उन सभी स्वामियों को लौटाने के लिए कोष्ठक वाइल्डकार्ड को प्रतिशत चिह्न के साथ संयोजित किया, जिनका पहला नाम b से शुरू होता है या h

ध्यान दें कि डीबीएमएस में ब्रैकेट ऑपरेटर का व्यापक रूप से अपनाना नहीं है। यह SQL सर्वर में समर्थित है, लेकिन यह MySQL, Oracle, DB2 और SQLite में समर्थित नहीं है। यह देखने के लिए कि क्या यह इस ऑपरेटर का समर्थन करता है, अपने DBMS दस्तावेज़ों की जाँच करें।

[^] वाइल्डकार्ड ऑपरेटर

कैरेट कैरेक्टर (^ ) का उपयोग ब्रैकेट ऑपरेटर का उपयोग करते समय परिणामों को नकारने के लिए किया जा सकता है।

इसलिए, हम पिछले उदाहरण को केवल उन्हीं स्वामियों को लौटाने के लिए बदलते हैं जिनका पहला नाम नहीं . है b with से शुरू करें या h .

SELECT 
    FirstName,
    LastName,
    Email
FROM Owners
WHERE FirstName LIKE '[^bh]%';

परिणाम:

+-------------+------------+-------------------+
| FirstName   | LastName   | Email             |
|-------------+------------+-------------------|
| Nancy       | Simpson    | NULL              |
| Woody       | Eastwood   | example@sqldat.com |
+-------------+------------+-------------------+

शून्य मान

प्रतिशत (% ) वाइल्डकार्ड किसी भी चीज़ से मेल खाता है - लगभग। एक चीज जो मेल नहीं खाती वह है NULL .

SELECT 
    FirstName,
    LastName,
    Email
FROM Owners
WHERE Email LIKE '%';

परिणाम:

+-------------+------------+-------------------+
| FirstName   | LastName   | Email             |
|-------------+------------+-------------------|
| Homer       | Connery    | example@sqldat.com |
| Bart        | Pitt       | example@sqldat.com  |
| Woody       | Eastwood   | example@sqldat.com |
| Burt        | Tyson      | example@sqldat.com  |
+-------------+------------+-------------------+

हमारी तालिका में, NULL . के साथ दो पंक्तियाँ हैं Email . में कॉलम, लेकिन वे यहां वापस नहीं किए गए हैं।

प्रदर्शन

ऐसी क्वेरी जिनमें LIKE . शामिल हैं ऑपरेटर अन्य प्रश्नों की तुलना में बहुत धीमी गति से चल सकता है, और आपको संभवतः LIKE . का उपयोग करने से बचना चाहिए ऑपरेटर जब तक आपको वास्तव में इसकी आवश्यकता न हो। % का उपयोग करना उपसर्ग के रूप में ऑपरेटर विशेष रूप से धीमा हो सकता है।

इसका मतलब यह नहीं है कि आपको इसका इस्तेमाल बिल्कुल नहीं करना चाहिए। LIKE ऑपरेटर एसक्यूएल का एक अभिन्न अंग है, और आप कई परिदृश्यों का सामना करेंगे जहां यह एकमात्र विकल्प होगा (या कम से कम, सबसे अच्छा विकल्प)।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. अनिर्धारित क्रम के साथ पंक्ति संख्या

  2. SQL में एक संख्यात्मक कॉलम का अधिकतम मान कैसे खोजें

  3. पुस्तक समीक्षा:बेंजामिन नेवारेज़:क्वेरी ट्यूनिंग और अनुकूलन

  4. पैरामीटर सूँघने वाला प्राइमर

  5. शुरुआती के लिए SQL DELETE