V MariaDB, INSTR()
je vestavěná řetězcová funkce, která vrací pozici prvního výskytu podřetězce v jiném řetězci.
INSTR()
je podobný LOCATE()
funkce, kromě LOCATE()
poskytuje možnost zadat počáteční pozici pro vyhledávání. Také pořadí argumentů je mezi těmito dvěma funkcemi obrácené.
Syntaxe
Syntaxe vypadá takto:
INSTR(str,substr)
Kde str
je řetězec, substr
je podřetězec, který se má najít.
Příklad
Zde je základní příklad:
SELECT INSTR('The hot sun', 'hot');
Výsledek:
+-----------------------------+ | INSTR('The hot sun', 'hot') | +-----------------------------+ | 5 | +-----------------------------+
Nerozlišují se malá a velká písmena
INSTR()
provede vyhledávání bez rozlišení velkých a malých písmen:
SELECT INSTR('The hot sun', 'HOT');
Výsledek:
+-----------------------------+ | INSTR('The hot sun', 'HOT') | +-----------------------------+ | 5 | +-----------------------------+
Více výskytů
Pokud se podřetězec vyskytuje více než jednou, vrátí se pouze pozice prvního z nich:
SELECT INSTR('The hot sun is really hot', 'hot');
Výsledek:
+-------------------------------------------+ | INSTR('The hot sun is really hot', 'hot') | +-------------------------------------------+ | 5 | +-------------------------------------------+
Částečná shoda
Pokud je podřetězec součástí většího slova, stále se jedná o shodu:
SELECT INSTR('The hottest sun', 'hot');
Výsledek:
+---------------------------------+ | INSTR('The hottest sun', 'hot') | +---------------------------------+ | 5 | +---------------------------------+
Ale pokud je řetězec pouze částí podřetězce, nejde o shodu:
SELECT INSTR('The hot sun', 'hottest');
Výsledek:
+---------------------------------+ | INSTR('The hot sun', 'hottest') | +---------------------------------+ | 0 | +---------------------------------+
Mezery
Znak mezery je stále řetězec, takže do podřetězce můžeme zahrnout mezery, i když je to jediný znak:
SELECT INSTR('The hot sun', ' ');
Výsledek:
+---------------------------+ | INSTR('The hot sun', ' ') | +---------------------------+ | 4 | +---------------------------+
Prázdný řetězec
Co se stane, když je podřetězec prázdný řetězec:
SELECT INSTR('The hot sun', '');
Výsledek:
+--------------------------+ | INSTR('The hot sun', '') | +--------------------------+ | 1 | +--------------------------+
Žádná shoda
Pokud podřetězec v řetězci není nalezen, INSTR()
vrátí 0
:
SELECT INSTR('The hot sun', 'cold');
Výsledek:
+------------------------------+ | INSTR('The hot sun', 'cold') | +------------------------------+ | 0 | +------------------------------+
Nulové argumenty
Poskytování null
pro kterýkoli z argumentů je výsledkem null
:
SELECT
INSTR('The hot sun', null),
INSTR(null, 'hot');
Výsledek:
+----------------------------+--------------------+ | INSTR('The hot sun', null) | INSTR(null, 'hot') | +----------------------------+--------------------+ | NULL | NULL | +----------------------------+--------------------+
Uvedení nesprávného počtu argumentů
Volání INSTR()
s nesprávným počtem argumentů nebo bez předání jakýchkoli argumentů vede k chybě:
SELECT INSTR('hot');
Výsledek:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'INSTR'