INSTR()
Funkce vrací pozici prvního výskytu podřetězce v řetězci. V podstatě dělá to samé, co syntaxe dvou argumentů LOCATE()
funkce ano (kromě toho, že pořadí argumentů je obrácené).
Syntaxe
Syntaxe vypadá takto:
INSTR(str,substr)
Kde str
je řetězec, který chcete hledat, a substr
je podřetězec, který hledáte.
Příklad 1 – Základní použití
SELECT INSTR('Cats and dogs like to run', 'dogs') AS Result;
Výsledek:
+--------+ | Result | +--------+ | 10 | +--------+
V tomto případě řetězec dogs
začíná na pozici 10.
Příklad 2 – nerozlišují se malá a velká písmena
Nerozlišují se malá a velká písmena:
SELECT INSTR('Cats and dogs like to run', 'DOGS') AS 'Result 1', INSTR('Cats and DOGS like to run', 'dogs') AS 'Result 2';
Výsledek:
+----------+----------+ | Result 1 | Result 2 | +----------+----------+ | 10 | 10 | +----------+----------+
Příklad 3 – Částečná shoda
Nezáleží na tom, zda váš hledaný výraz představuje pouze část slova, přesto se bude shodovat (koneckonců jednoduše hledáte podřetězec v řetězci):
SELECT INSTR('Cats and dogs like to run', 'do') AS Result;
Výsledek:
+--------+ | Result | +--------+ | 10 | +--------+
Mezera je stále součástí řetězce. Takže můžete vyhledat první mezeru, pokud potřebujete:
SELECT INSTR('Cats and dogs like to run', ' ') AS Result;
Výsledek:
+--------+ | Result | +--------+ | 5 | +--------+
Příklad 4 – Pouze první výskyt
Pamatujte, že je vrácena pouze pozice prvního výskytu:
SELECT INSTR('Cats and dogs like to run', 'a') AS Result;
Výsledek:
+--------+ | Result | +--------+ | 2 | +--------+
Příklad 5 – Když podřetězec nelze najít
Pokud podřetězec není nalezen, výsledek 0
je vráceno:
SELECT INSTR('Cats and dogs like to run', 'rabbit') AS Result;
Výsledek:
+--------+ | Result | +--------+ | 0 | +--------+
Příklad 6 – Nesprávný počet parametrů
Pokud některý z parametrů vynecháte, zobrazí se chyba:
SELECT INSTR('Cats and dogs like to run') AS Result;
Výsledek:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'INSTR'
Chyba se také zobrazí, pokud zadáte příliš mnoho parametrů:
SELECT INSTR('Cats and dogs like to run', 'dogs', 'cats') AS Result;
Výsledek:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'INSTR'