Il INSTR()
La funzione restituisce la posizione della prima occorrenza di una sottostringa all'interno di una stringa. Fondamentalmente, fa la stessa cosa della sintassi a due argomenti di LOCATE()
la funzione fa (tranne che l'ordine degli argomenti è invertito).
Sintassi
La sintassi è questa:
INSTR(str,substr)
Dove str
è la stringa che vuoi cercare e substr
è la sottostringa che stai cercando.
Esempio 1 – Utilizzo di base
SELECT INSTR('Cats and dogs like to run', 'dogs') AS Result;
Risultato:
+--------+ | Result | +--------+ | 10 | +--------+
In questo caso, la stringa dogs
inizia dalla posizione 10.
Esempio 2 – Senza distinzione tra maiuscole e minuscole
Non fa distinzione tra maiuscole e minuscole:
SELECT INSTR('Cats and dogs like to run', 'DOGS') AS 'Result 1', INSTR('Cats and DOGS like to run', 'dogs') AS 'Result 2';
Risultato:
+----------+----------+ | Result 1 | Result 2 | +----------+----------+ | 10 | 10 | +----------+----------+
Esempio 3 – Partita parziale
Non importa se il termine di ricerca rappresenta solo una parte di una parola, corrisponderà comunque (dopotutto, stai semplicemente cercando una sottostringa all'interno di una stringa):
SELECT INSTR('Cats and dogs like to run', 'do') AS Result;
Risultato:
+--------+ | Result | +--------+ | 10 | +--------+
Uno spazio fa ancora parte della stringa. Quindi puoi cercare il primo spazio se necessario:
SELECT INSTR('Cats and dogs like to run', ' ') AS Result;
Risultato:
+--------+ | Result | +--------+ | 5 | +--------+
Esempio 4:solo prima occorrenza
Ricorda, viene restituita solo la posizione della prima occorrenza:
SELECT INSTR('Cats and dogs like to run', 'a') AS Result;
Risultato:
+--------+ | Result | +--------+ | 2 | +--------+
Esempio 5 – Quando non è possibile trovare la sottostringa
Se la sottostringa non viene trovata, un risultato di 0
viene restituito:
SELECT INSTR('Cats and dogs like to run', 'rabbit') AS Result;
Risultato:
+--------+ | Result | +--------+ | 0 | +--------+
Esempio 6 – Conteggio parametri errato
Se ometti uno qualsiasi dei parametri, riceverai un errore:
SELECT INSTR('Cats and dogs like to run') AS Result;
Risultato:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'INSTR'
Riceverai un errore anche se fornisci troppi parametri:
SELECT INSTR('Cats and dogs like to run', 'dogs', 'cats') AS Result;
Risultato:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'INSTR'