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'