Mysql
 sql >> Database >  >> RDS >> Mysql

Come funziona la funzione INSTR() in MySQL

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'