I SQLite kan du bruge instr()
funktion for at returnere positionen af et givet tegn i en streng.
Funktionen returnerer kun positionen for den første forekomst af tegnet (hvis nogen).
Hvis tegnet ikke findes, returnerer det 0.
Hvis et af argumenterne er NULL, returnerer det NULL.
Sådan virker det
instr()
funktion accepterer to argumenter. Det første argument er strengen, og det andet argument er det tegn, du ønsker at finde i den streng.
Hvis argumenterne begge er BLOB'er, returnerer det én mere end antallet af bytes før den første forekomst af det andet argument, eller 0, hvis det ikke forekommer nogen steder i det første argument.
Syntaksen ser sådan ud:
inst(X,Y)
X
er strengenY
er tegnet
Eksempel
Her er et eksempel til at demonstrere.
SELECT instr('Black cat', 'a');
Resultat:
3
Her ønskede jeg placeringen af bogstavet a .
I dette tilfælde vises bogstavet to gange, og instr()
returnerer placeringen af den første forekomst.
Et databaseeksempel
I dette eksempel vil jeg bruge følgende tabel:
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
Jeg vil søge i Produktnavn kolonne for et bogstav.
SELECT
ProductName,
instr(ProductName, 'd')
FROM Products;
Resultat:
ProductName instr(ProductName, 'd') ------------- ----------------------- Widget Holder 3 Blue Widget 8 Red Widget 3 Green Widget 9 Widget Stick 3 Foo Cap 0
Bemærk, at den sidste række ikke havde bogstavet og derfor 0 blev returneret for den række.
NULL-værdier
Som nævnt, hvis nogle af argumenterne er NULL, returneres NULL.
SELECT
instr(NULL, 'a'),
instr('Black cat', NULL);
Resultat:
instr(NULL, 'a') instr('Black cat', NULL) ---------------- ------------------------