In SQLite, puoi usare instr()
funzione per restituire la posizione di un dato carattere all'interno di una stringa.
La funzione restituisce solo la posizione della prima occorrenza del carattere (se presente).
Se il carattere non viene trovato, restituisce 0.
Se uno degli argomenti è NULL, restituisce NULL.
Come funziona
Il instr()
la funzione accetta due argomenti. Il primo argomento è la stringa e il secondo argomento è il carattere che desideri trovare all'interno di quella stringa.
Se gli argomenti sono entrambi BLOB, restituisce uno in più rispetto al numero di byte prima della prima occorrenza del secondo argomento, o 0 se non si verifica da nessuna parte all'interno del primo argomento.
La sintassi è questa:
inst(X,Y)
X
è la stringaY
è il personaggio
Esempio
Ecco un esempio da dimostrare.
SELECT instr('Black cat', 'a');
Risultato:
3
Qui, volevo la posizione della lettera a .
In questo caso la lettera compare due volte e instr()
restituisce la posizione della prima occorrenza.
Un esempio di database
In questo esempio userò la seguente tabella:
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
Cercherò NomeProdotto colonna per una lettera.
SELECT
ProductName,
instr(ProductName, 'd')
FROM Products;
Risultato:
ProductName instr(ProductName, 'd') ------------- ----------------------- Widget Holder 3 Blue Widget 8 Red Widget 3 Green Widget 9 Widget Stick 3 Foo Cap 0
Nota che l'ultima riga non conteneva la lettera e quindi 0 è stato restituito per quella riga.
Valori NULL
Come accennato, se uno qualsiasi degli argomenti è NULL, viene restituito NULL.
SELECT
instr(NULL, 'a'),
instr('Black cat', NULL);
Risultato:
instr(NULL, 'a') instr('Black cat', NULL) ---------------- ------------------------