जैसा कि अन्य ने पहले ही बताया है, REGEXP एक उपयोगकर्ता परिभाषित फ़ंक्शन को कॉल करता है जिसे पहले डेटाबेस में परिभाषित और लोड किया जाना चाहिए। हो सकता है कि कुछ sqlite वितरण या GUI टूल इसे डिफ़ॉल्ट रूप से शामिल करते हैं, लेकिन मेरी उबंटू इंस्टॉल नहीं हुई। समाधान था
sudo apt-get install sqlite3-pcre
जो एक लोड करने योग्य मॉड्यूल में नियमित अभिव्यक्ति पर्ल को लागू करता है /usr/lib/sqlite3/pcre.so
इसका उपयोग करने में सक्षम होने के लिए, आपको हर बार डेटाबेस खोलते समय इसे लोड करना होगा:
.load /usr/lib/sqlite3/pcre.so
या आप उस लाइन को अपने में डाल सकते हैं ~/.sqliterc
।
अब आप इस तरह क्वेरी कर सकते हैं:
SELECT fld FROM tbl WHERE fld REGEXP '\b3\b';
यदि आप सीधे कमांड-लाइन से क्वेरी करना चाहते हैं, तो आप -cmd
अपनी SQL से पहले लाइब्रेरी को लोड करने के लिए स्विच का उपयोग कर सकते हैं :
sqlite3 "$filename" -cmd ".load /usr/lib/sqlite3/pcre.so" "SELECT fld FROM tbl WHERE fld REGEXP '\b3\b';"
यदि आप विंडोज पर हैं, तो मुझे लगता है कि एक समान। Dll फ़ाइल कहीं उपलब्ध होनी चाहिए।