Başkalarının daha önce de belirttiği gibi, REGEXP, önce tanımlanması ve veritabanına yüklenmesi gereken kullanıcı tanımlı bir işlevi çağırır. Belki bazı sqlite dağıtımları veya GUI araçları bunu varsayılan olarak içerir, ancak benim Ubuntu kurulumum bunu yapmadı. Çözüm oldu
sudo apt-get install sqlite3-pcre
Perl düzenli ifadelerini yüklenebilir bir modülde uygulayan /usr/lib/sqlite3/pcre.so
Kullanabilmek için, veritabanını her açtığınızda yüklemeniz gerekir:
.load /usr/lib/sqlite3/pcre.so
Ya da bu satırı kendi sayfanıza koyabilirsiniz ~/.sqliterc
.
Şimdi şu şekilde sorgulayabilirsiniz:
SELECT fld FROM tbl WHERE fld REGEXP '\b3\b';
Doğrudan komut satırından sorgulamak istiyorsanız -cmd
, kütüphaneyi SQL'inizden önce yüklemek için anahtarı kullanabilirsiniz :
sqlite3 "$filename" -cmd ".load /usr/lib/sqlite3/pcre.so" "SELECT fld FROM tbl WHERE fld REGEXP '\b3\b';"
Windows kullanıyorsanız, sanırım benzer bir .dll dosyası bir yerde bulunmalıdır.