Como ya han señalado otros, REGEXP llama a una función definida por el usuario que primero debe definirse y cargarse en la base de datos. Tal vez algunas distribuciones sqlite o herramientas GUI lo incluyan de forma predeterminada, pero mi instalación de Ubuntu no lo hizo. La solucion fue
sudo apt-get install sqlite3-pcre
que implementa expresiones regulares de Perl en un módulo cargable en /usr/lib/sqlite3/pcre.so
Para poder usarlo, debes cargarlo cada vez que abras la base de datos:
.load /usr/lib/sqlite3/pcre.so
O podrías poner esa línea en tu ~/.sqliterc
.
Ahora puedes realizar consultas como esta:
SELECT fld FROM tbl WHERE fld REGEXP '\b3\b';
Si desea realizar consultas directamente desde la línea de comandos, puede usar el -cmd
conmutador para cargar la biblioteca antes de su SQL:
sqlite3 "$filename" -cmd ".load /usr/lib/sqlite3/pcre.so" "SELECT fld FROM tbl WHERE fld REGEXP '\b3\b';"
Si está en Windows, supongo que un archivo .dll similar debería estar disponible en alguna parte.