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'