In SQLite können Sie das instr()
verwenden Funktion, um die Position eines bestimmten Zeichens innerhalb einer Zeichenfolge zurückzugeben.
Die Funktion gibt nur die Position des ersten Vorkommens des Zeichens zurück (falls vorhanden).
Wenn das Zeichen nicht gefunden wird, wird 0 zurückgegeben.
Wenn eines der Argumente NULL ist, wird NULL zurückgegeben.
Wie es funktioniert
Die instr()
Die Funktion akzeptiert zwei Argumente. Das erste Argument ist die Zeichenkette, und das zweite Argument ist das Zeichen, das Sie in dieser Zeichenkette finden möchten.
Wenn die Argumente beide BLOBs sind, wird eins mehr als die Anzahl Bytes vor dem ersten Auftreten des zweiten Arguments zurückgegeben, oder 0, wenn es nirgendwo innerhalb des ersten Arguments vorkommt.
Die Syntax lautet wie folgt:
inst(X,Y)
X
ist die ZeichenfolgeY
ist das Zeichen
Beispiel
Hier ist ein Beispiel zur Veranschaulichung.
SELECT instr('Black cat', 'a');
Ergebnis:
3
Hier wollte ich die Position des Buchstabens a .
In diesem Fall erscheint der Buchstabe zweimal und instr()
gibt den Ort des ersten Vorkommens zurück.
Ein Datenbankbeispiel
In diesem Beispiel verwende ich die folgende Tabelle:
ProductId ProductName Price ---------- ------------- ---------- 1 Widget Holder 139.5 2 Blue Widget 10.0 3 Red Widget 10.0 4 Green Widget 10.0 5 Widget Stick 89.75 6 Foo Cap 11.99
Ich suche nach ProductName Spalte für einen Buchstaben.
SELECT
ProductName,
instr(ProductName, 'd')
FROM Products;
Ergebnis:
ProductName instr(ProductName, 'd') ------------- ----------------------- Widget Holder 3 Blue Widget 8 Red Widget 3 Green Widget 9 Widget Stick 3 Foo Cap 0
Beachten Sie, dass die letzte Zeile nicht den Buchstaben und damit 0 hatte wurde für diese Zeile zurückgegeben.
NULL-Werte
Wie bereits erwähnt, wird NULL zurückgegeben, wenn eines der Argumente NULL ist.
SELECT
instr(NULL, 'a'),
instr('Black cat', NULL);
Ergebnis:
instr(NULL, 'a') instr('Black cat', NULL) ---------------- ------------------------