INSTR()
функцията връща позицията на първото появяване на подниз в низ. По принцип той прави същото нещо, което синтаксисът с два аргумента на LOCATE()
функцията прави (освен че редът на аргументите е обратен).
Синтаксис
Синтаксисът е така:
INSTR(str,substr)
Където str
е низът, който искате да търсите, и substr
е поднизът, който търсите.
Пример 1 – Основна употреба
SELECT INSTR('Cats and dogs like to run', 'dogs') AS Result;
Резултат:
+--------+ | Result | +--------+ | 10 | +--------+
В този случай низът dogs
започва от позиция 10.
Пример 2 – Не е чувствителен към главни букви
Не е чувствително главни и малки букви:
SELECT INSTR('Cats and dogs like to run', 'DOGS') AS 'Result 1', INSTR('Cats and DOGS like to run', 'dogs') AS 'Result 2';
Резултат:
+----------+----------+ | Result 1 | Result 2 | +----------+----------+ | 10 | 10 | +----------+----------+
Пример 3 – Частично съвпадение
Няма значение дали вашата дума за търсене представлява само част от дума, тя пак ще съвпада (в края на краищата вие просто търсите подниз в низ):
SELECT INSTR('Cats and dogs like to run', 'do') AS Result;
Резултат:
+--------+ | Result | +--------+ | 10 | +--------+
Интервалът все още е част от низа. Така че можете да търсите първото място, ако трябва:
SELECT INSTR('Cats and dogs like to run', ' ') AS Result;
Резултат:
+--------+ | Result | +--------+ | 5 | +--------+
Пример 4 – Само първо появяване
Не забравяйте, че се връща само позицията на първото появяване:
SELECT INSTR('Cats and dogs like to run', 'a') AS Result;
Резултат:
+--------+ | Result | +--------+ | 2 | +--------+
Пример 5 – Когато поднизът не може да бъде намерен
Ако поднизът не е намерен, резултат от 0
се връща:
SELECT INSTR('Cats and dogs like to run', 'rabbit') AS Result;
Резултат:
+--------+ | Result | +--------+ | 0 | +--------+
Пример 6 – Неправилен брой параметри
Ако пропуснете някой от параметрите, ще получите грешка:
SELECT INSTR('Cats and dogs like to run') AS Result;
Резултат:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'INSTR'
Ще получите и грешка, ако предоставите твърде много параметри:
SELECT INSTR('Cats and dogs like to run', 'dogs', 'cats') AS Result;
Резултат:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'INSTR'