Wie bereits erwähnt, ruft REGEXP eine benutzerdefinierte Funktion auf, die zuerst definiert und in die Datenbank geladen werden muss. Möglicherweise enthalten einige SQLite-Distributionen oder GUI-Tools dies standardmäßig, meine Ubuntu-Installation jedoch nicht. Die Lösung war
sudo apt-get install sqlite3-pcre
Hiermit werden reguläre Perl-Ausdrücke in einem ladbaren Modul implementiert /usr/lib/sqlite3/pcre.so
Um es verwenden zu können, müssen Sie es jedes Mal laden, wenn Sie die Datenbank öffnen:
.load /usr/lib/sqlite3/pcre.so
Oder Sie könnten diese Zeile in Ihre setzen ~/.sqliterc
.
Jetzt können Sie wie folgt abfragen:
SELECT fld FROM tbl WHERE fld REGEXP '\b3\b';
Wenn Sie direkt über die Befehlszeile abfragen möchten, können Sie -cmd
die Bibliothek mit dem Schalter vor Ihrem SQL laden:
sqlite3 "$filename" -cmd ".load /usr/lib/sqlite3/pcre.so" "SELECT fld FROM tbl WHERE fld REGEXP '\b3\b';"
Wenn Sie unter Windows arbeiten, sollte eine ähnliche DLL-Datei irgendwo verfügbar sein.