Як вже вказували інші, REGEXP викликає визначену користувачем функцію, яку спочатку слід визначити та завантажити в базу даних. Можливо, деякі дистрибутиви sqlite або інструменти графічного інтерфейсу включають його за замовчуванням, але моя установка Ubuntu цього не зробила. Рішення було
sudo apt-get install sqlite3-pcre
який реалізує регулярні вирази Perl в завантажуваному модулі в /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';"
Якщо ви перебуваєте в ОС Windows, я думаю, схожий .dll-файл повинен бути десь доступний.