2010-08-17 13 views
71

मैं यह कैसे कर सकता हूं?SQLite स्ट्रिंग में अन्य स्ट्रिंग क्वेरी

उदाहरण के लिए, यदि मेरा कॉलम "बिल्लियों, कुत्तों, पक्षियों" है और मैं ऐसी पंक्तियां प्राप्त करना चाहता हूं जहां कॉलम में बिल्लियों हैं?

+3

नमूना डेटा के एक सेट के साथ अपना प्रश्न संपादित करें। यह निर्धारित करना मुश्किल है कि आप वास्तव में क्या पूछ रहे हैं। –

उत्तर

140

तरह का उपयोग करना:

SELECT * 
    FROM TABLE 
WHERE column LIKE '%cats%' --case-insensitive 
+3

ध्यान रखें कि यह उपयुक्त नहीं है जहां आप जिस स्ट्रिंग को खोज रहे हैं वह परिवर्तनीय है या इसमें '% 'जैसे एक विशेष वर्ण शामिल हैं। – Sam

+4

यदि "बिल्लियों" किसी अन्य तालिका से एक फ़ील्ड है, तो आप '%' का उपयोग कर सकते हैं || table2.field || '%' 'जैसे मानदंड –

53

जबकि LIKE इस मामले के लिए उपयुक्त है, एक और अधिक सामान्य प्रयोजन समाधान instr, जो खोज स्ट्रिंग में वर्णों की आवश्यकता नहीं है भाग निकले जा करने के लिए उपयोग करने के लिए है। नोट: instr is available starting from Sqlite 3.7.15

SELECT * 
    FROM TABLE 
WHERE instr(column, 'cats') > 0; 

इसके अलावा, यह ध्यान रखें कि LIKE केस असंवेदनशील है, जबकि instrसंवेदनशील केस है।

+7

जिसका अर्थ है कि आपका minSdkVersion 21 (5.0-लॉलीपॉप) होना चाहिए –

संबंधित मुद्दे