MariaDB
 sql >> Database >  >> RDS >> MariaDB

Come funziona INSTR() in MariaDB

In MariaDB, INSTR() è una funzione di stringa incorporata che restituisce la posizione della prima occorrenza di una sottostringa all'interno di un'altra stringa.

INSTR() è simile a LOCATE() funzione, eccetto che LOCATE() offre la possibilità di specificare una posizione iniziale per la ricerca. Inoltre, l'ordine degli argomenti è invertito tra queste due funzioni.

Sintassi

La sintassi è questa:

INSTR(str,substr)

Dove str è la stringa, substr è la sottostringa da trovare.

Esempio

Ecco un esempio di base:

SELECT INSTR('The hot sun', 'hot');

Risultato:

+-----------------------------+
| INSTR('The hot sun', 'hot') |
+-----------------------------+
|                           5 |
+-----------------------------+

Maiuscole/minuscole

INSTR() esegue una ricerca senza distinzione tra maiuscole e minuscole:

SELECT INSTR('The hot sun', 'HOT');

Risultato:

+-----------------------------+
| INSTR('The hot sun', 'HOT') |
+-----------------------------+
|                           5 |
+-----------------------------+

Ricorrenze multiple

Se la sottostringa ricorre più di una volta, viene restituita solo la posizione della prima:

SELECT INSTR('The hot sun is really hot', 'hot');

Risultato:

+-------------------------------------------+
| INSTR('The hot sun is really hot', 'hot') |
+-------------------------------------------+
|                                         5 |
+-------------------------------------------+

Partita parziale

Se la sottostringa fa parte di una parola più grande, è ancora una corrispondenza:

SELECT INSTR('The hottest sun', 'hot');

Risultato:

+---------------------------------+
| INSTR('The hottest sun', 'hot') |
+---------------------------------+
|                               5 |
+---------------------------------+

Ma se la stringa è solo una parte della sottostringa, non è una corrispondenza:

SELECT INSTR('The hot sun', 'hottest');

Risultato:

+---------------------------------+
| INSTR('The hot sun', 'hottest') |
+---------------------------------+
|                               0 |
+---------------------------------+

Spazi

Il carattere spazio è ancora una stringa, quindi possiamo includere spazi nella sottostringa, anche se è l'unico carattere:

SELECT INSTR('The hot sun', ' ');

Risultato:

+---------------------------+
| INSTR('The hot sun', ' ') |
+---------------------------+
|                         4 |
+---------------------------+

Stringa vuota

Ecco cosa succede quando la sottostringa è una stringa vuota:

SELECT INSTR('The hot sun', '');

Risultato:

+--------------------------+
| INSTR('The hot sun', '') |
+--------------------------+
|                        1 |
+--------------------------+

Nessuna corrispondenza

Se la sottostringa non viene trovata nella stringa, INSTR() restituisce 0 :

SELECT INSTR('The hot sun', 'cold');

Risultato:

+------------------------------+
| INSTR('The hot sun', 'cold') |
+------------------------------+
|                            0 |
+------------------------------+

Argomenti nulli

Fornendo null per qualsiasi argomento risulta null :

SELECT 
    INSTR('The hot sun', null),
    INSTR(null, 'hot');

Risultato:

+----------------------------+--------------------+
| INSTR('The hot sun', null) | INSTR(null, 'hot') |
+----------------------------+--------------------+
|                       NULL |               NULL |
+----------------------------+--------------------+

Fornire il numero sbagliato di argomenti

Chiamando INSTR() con il numero errato di argomenti o senza passare alcun argomento genera un errore:

SELECT INSTR('hot');

Risultato:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'INSTR'