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'