Seperti yang telah ditunjukkan oleh orang lain, REGEXP memanggil fungsi yang ditentukan pengguna yang harus didefinisikan terlebih dahulu dan dimuat ke dalam database. Mungkin beberapa distribusi sqlite atau alat GUI memasukkannya secara default, tetapi pemasangan Ubuntu saya tidak. Solusinya adalah
sudo apt-get install sqlite3-pcre
yang mengimplementasikan ekspresi reguler Perl dalam modul yang dapat dimuat di /usr/lib/sqlite3/pcre.so
Untuk dapat menggunakannya, Anda harus memuatnya setiap kali Anda membuka database:
.load /usr/lib/sqlite3/pcre.so
Atau Anda bisa memasukkan baris itu ke file ~/.sqliterc
.
Sekarang Anda dapat melakukan kueri seperti ini:
SELECT fld FROM tbl WHERE fld REGEXP '\b3\b';
Jika Anda ingin membuat kueri langsung dari baris perintah, Anda dapat menggunakan -cmd
sakelar untuk memuat pustaka sebelum SQL Anda:
sqlite3 "$filename" -cmd ".load /usr/lib/sqlite3/pcre.so" "SELECT fld FROM tbl WHERE fld REGEXP '\b3\b';"
Jika Anda menggunakan Windows, saya kira file .dll serupa harus tersedia di suatu tempat.