Como outros já apontaram, REGEXP chama uma função definida pelo usuário que deve primeiro ser definida e carregada no banco de dados. Talvez algumas distribuições sqlite ou ferramentas GUI incluam por padrão, mas minha instalação do Ubuntu não. A solução foi
sudo apt-get install sqlite3-pcre
que implementa expressões regulares Perl em um módulo carregável em /usr/lib/sqlite3/pcre.so
Para poder usá-lo, você deve carregá-lo toda vez que abrir o banco de dados:
.load /usr/lib/sqlite3/pcre.so
Ou você pode colocar essa linha no seu ~/.sqliterc
.
Agora você pode consultar assim:
SELECT fld FROM tbl WHERE fld REGEXP '\b3\b';
Se você deseja consultar diretamente da linha de comando, pode usar a -cmd
opção para carregar a biblioteca antes do SQL:
sqlite3 "$filename" -cmd ".load /usr/lib/sqlite3/pcre.so" "SELECT fld FROM tbl WHERE fld REGEXP '\b3\b';"
Se você estiver no Windows, acho que um arquivo .dll semelhante deve estar disponível em algum lugar.