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

उदाहरण के साथ SQLite लाइक () फ़ंक्शन

SQLite like() फ़ंक्शन आपको किसी दिए गए पैटर्न के विरुद्ध स्ट्रिंग की तुलना करने में सक्षम बनाता है। यदि आवश्यक हो तो आप एक एस्केप कैरेक्टर भी निर्दिष्ट कर सकते हैं।

आप like() . का उपयोग कर सकते हैं LIKE . के विकल्प के रूप में कार्य करता है ऑपरेटर (जो आपको Y LIKE X [ESCAPE Z] . चलाने में सक्षम बनाता है) अभिव्यक्ति)।

सिंटैक्स

आप निम्न में से किसी एक का उपयोग कर सकते हैं:

like(X,Y)
like(X,Y,Z)
  • X पैटर्न है
  • Y स्ट्रिंग है
  • Z एक वैकल्पिक एस्केप कैरेक्टर है

मूल उदाहरण

निम्न तालिका लें:

CatId       CatName   
----------  ----------
1           Brush     
2           Flutter   
3           100%Fluff 
4           100$Fluff 

हम उन सभी पंक्तियों को वापस करने के लिए निम्नलिखित कोड चला सकते हैं जहाँ बिल्ली का नाम F अक्षर से शुरू होता है:

SELECT * FROM Cats 
WHERE like('F%', CatName);

परिणाम:

CatId       CatName   
----------  ----------
3           Flutter   

इस उदाहरण में, मैंने % . का उपयोग किया है वाइल्डकार्ड वर्ण इंगित करता है कि कितने भी वर्ण अनुसरण कर सकते हैं (शून्य वर्णों सहित), और यह कि वे कोई भी वर्ण हो सकते हैं।

अंडरस्कोर (_) कैरेक्टर

यहां एक उदाहरण दिया गया है जो अंडरस्कोर का उपयोग करता है (_ ) चरित्र। यह वाइल्डकार्ड वर्ण बिल्कुल एक वर्ण से मेल खाता है - न अधिक और न कम।

SELECT * FROM Cats 
WHERE like('Br_sh', CatName);

परिणाम:

CatId       CatName   
----------  ----------
1           Brush     

जैसा कि उल्लेख किया गया है, यह केवल एक वर्ण से मेल खाता है। इसलिए, अपने डेटा के आधार पर, मैं निम्नलिखित कार्य नहीं कर सकता और किसी भी मैच की उम्मीद नहीं कर सकता।

SELECT * FROM Cats 
WHERE like('Br_', CatName);

परिणाम:

 

(यह जानबूझकर खाली है क्योंकि कोई परिणाम नहीं है)।

एस्केपिंग कैरेक्टर

यदि आवश्यक हो तो आप पात्रों से बच भी सकते हैं। ऐसा करने के लिए, एस्केप कैरेक्टर को तीसरे पैरामीटर के रूप में जोड़ें (और इसे उस कैरेक्टर से पहले भी जोड़ें जिससे आप बचना चाहते हैं)।

SELECT * FROM Cats 
WHERE like('100\%F%', CatName, '\');

परिणाम:

CatId       CatName   
----------  ----------
3           100%Fluff 

इस मामले में मैं प्रतिशत चिह्न से बच गया (% ) मैंने ऐसा इसलिए किया क्योंकि मैं उन बिल्लियों की तलाश में था जिनके नाम में वास्तविक प्रतिशत चिह्न था। दरअसल, इस मामले में मैं एक बहुत ही विशिष्ट बिल्ली के नाम की खोज कर रहा था - एक जो 100%F से शुरू होता है ।

अगर मैं इससे बच नहीं पाता, तो इसे वाइल्डकार्ड के रूप में इस्तेमाल किया जाता, और परिणाम अलग होते।

जब मैं एस्केप कैरेक्टर को हटाता हूं तो मुझे यही मिलता है।

SELECT * FROM Cats 
WHERE like('100%F%', CatName);

परिणाम:

CatId       CatName   
----------  ----------
3           100%Fluff 
4           100$Fluff 

बूलियन मान लौटाएं

आप like() . का उपयोग कर सकते हैं एक 0 . वापस करने के लिए कार्य करता है या 1 , इस पर निर्भर करता है कि कोई मैच है या नहीं।

यह आसान हो सकता है यदि आपको सभी पंक्तियों को वापस करने की आवश्यकता है, लेकिन एक ध्वज के साथ भी जो दिखाता है कि वे आपके मानदंडों से मेल खाते हैं या नहीं।

यहाँ एक उदाहरण है।

SELECT 
  CatName,
  like('F%', CatName) 
FROM Cats;

परिणाम:

CatName     CatName LIKE 'F%'
----------  ------------------
Brush       0                 
Flutter     1                 
100%Fluff   0                 
100$Fluff   0                 

इस मामले में, केवल एक पंक्ति मानदंड से मेल खाती है, लेकिन हमें अभी भी अन्य सभी पंक्तियाँ देखने को मिली हैं।

केस-सेंसिटिविटी

डिफ़ॉल्ट रूप से, SQLite like() फ़ंक्शन ASCII वर्णों के लिए केस-असंवेदनशील है। इसका मतलब है कि यह अपरकेस और लोअरकेस वर्णों से मेल खाएगा, भले ही आप अपने पैटर्न में किसी भी मामले का उपयोग करें।

आप केस_सेंसिटिव_लाइक . का उपयोग कर सकते हैं PRAGMA कथन ASCII श्रेणी में केस-संवेदी मिलान करने के लिए।

उदाहरण के लिए SQLite के 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. SQLite डेटाबेस में तालिकाओं को सूचीबद्ध करने के 2 तरीके

  3. SQLite JSON_SET ()

  4. SQLite डंप कमांड का उपयोग कैसे करें

  5. एंड्रॉइड रूम एंबेडेड रिलेशन एसक्यूएल को अनदेखा करता है जहां स्थिति