2009-12-03 15 views
5

मैं किसी डेटाबेस में नियमित अभिव्यक्ति के लिए क्वेरी से मिलान करने का कोई तरीका ढूंढने का प्रयास कर रहा हूं। जहाँ तक मेरा बता सकते हैं (हालांकि मैं कोई विशेषज्ञ हूँ) है, जबकि MySQL की तरह सबसे डीबीएमएस खोज के लिए एक regex option है, तो आप केवल कुछ ऐसा कर सकते हैं: कॉलम 1 में सभी पंक्तियों में रेगुलर एक्सप्रेशन से मेल पता लगाएंएसक्यूएल में एक नियमित अभिव्यक्ति के लिए एक प्रश्न मैच?

मेरी क्वेरी।

मुझे क्या करना सक्षम होना चाहते हैं विपरीत, यानी .:

ऐसी है कि कॉलम 1 में regex मेरी क्वेरी से मेल खाता कॉलम 1 में सभी पंक्तियों का पता लगाएं है।

सरल उदाहरण - मैं एक डेटाबेस इसलिए की तरह संरचित कहना था:

+----------+-----------+ 
| Column 1 | Column 2 | 
+----------+-----------+ 
| [a-z]+ | whatever | 
+----------+-----------+ 
| [\w]+ | whatever | 
+----------+-----------+ 
| [0-9]+ | whatever | 
+----------+-----------+ 

तो अगर मैं पूछे "कुत्ता", मैं इसके साथ पंक्तियों को वापस करना चाहते हैं [az] और [\ डब्ल्यू] +, और अगर मैंने पूछताछ की, तो यह पंक्ति को 0-9] + के साथ वापस कर देगा।

यदि आप SQL में ऐसा करने का कोई तरीका जानते हैं, तो एक छोटा सा उदाहरण या उदाहरण के साथ एक लिंक की सराहना की जाएगी।

+1

ओरेकल regex के समर्थन नहीं किया 10g तक, एसक्यूएल सर्वर v2005 में समर्थन जोड़ा गया। कोई एएनएसआई मानक वाक्यविन्यास नहीं है जिसे मैं जानता हूं - रेगेक्स है, लेकिन ऐसा करने के लिए उपयोग किया जाने वाला फ़ंक्शन विक्रेताओं के बीच अलग होगा। –

उत्तर

4

MySQL के लिए (और भी अन्य डेटाबेस हो सकता है):

SELECT * FROM table WHERE "dog" RLIKE(`Column 1`) 
+0

बढ़िया! आपके त्वरित उत्तर के लिए धन्यवाद। – Pete

+0

बस एक त्वरित अपडेट - मैंने पाया कि यह केवल MySQL में काम करता है अगर मैंने क्वेरी को इस प्रकार संरचित किया: तालिका से चुनें "कुत्ता" RLIKE (कॉलम 1) – Pete

+0

रेल में सक्रिय रिकॉर्ड क्वेरी इंटरफ़ेस में आप यह कैसे करेंगे ? – Ephraim

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