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'