Wenn das Ergebnis " [email protected]
" ist und ich die Position des @
Symbols (3) finden möchte. Ist es möglich? Es scheint nicht, dass SQLite das Äquivalent von INSTR
, LOCATE
, POSITION
oder einer solchen Funktion hat.
Update Ich habe letztendlich eine benutzerdefinierte Erweiterungsfunktion registriert, war aber überrascht, dass ich es tun musste.
Abrufen des Dateinamens von einem Pfad:
%Vor%Erhalten von Ссылка , hoffe, es könnte jemandem helfen.
Wie Sie hier sehen können, ist charindex nicht im SQLite-Standardpaket (zumindest in Version 3.6.2, die ich verwende) . Aber diese Erweiterung (extension-functions.c) hat Charindex, das ist im Grunde das gleiche wie die VB instr.
Um diese Funktionen zu sqlite hinzuzufügen:
Wir müssen den C-Quellcode kompilieren, um die sqlite-Erweiterung zu erstellen (vorausgesetzt, Sie sind unter Windows):
Installieren Sie den mingw Compiler, klein und einfach zu machen.
Kopieren Sie sqlite3.h in denselben Ordner
gcc -fPIC -lm -shared Erweiterungsfunktionen.c -o libsqlitefunctions.dll
fireup sqlite
Wählen Sie load_extension ('libsqlitefunctions.dll')
Es gibt auch andere String- und mathematische Funktionen.
Bekam das von ein Spiceworks-Beitrag :
%Vor%Der erste Schritt besteht darin, alle Zeichen bis zu einem bestimmten Zeichen zu entfernen mit ltrim oder rtrim. Wenn Sie einen Dateinamen abrufen, trimmen Sie alle Zeichen, die keine Schrägstriche sind. Wenn Sie einen Benutzernamen abrufen dann trimmst du alles, was kein @ -Zeichen ist. Sie können dann verwenden Diese beschnittene Zeichenfolge in einer Ersetzungsfunktion ersetzt ihr Auftreten mit einer leeren Zeichenfolge. Das wird dich mit jedem Charakter versorgen Du hast gerade den ersten Schritt getrimmt. Mit anderen Worten, der Benutzername oder Dateiname.
%Vor%Benutzer von E-Mail abrufen: