В MariaDB, INSTR() е вградена функция за низ, която връща позицията на първото появяване на подниз в друг низ.
INSTR() е подобен на LOCATE() функция, с изключение на LOCATE() предоставя възможност за определяне на начална позиция за търсене. Освен това редът на аргументите е обърнат между тези две функции.
Синтаксис
Синтаксисът е така:
INSTR(str,substr)
Където str е низът, substr е поднизът за намиране.
Пример
Ето един основен пример:
SELECT INSTR('The hot sun', 'hot'); Резултат:
+-----------------------------+
| INSTR('The hot sun', 'hot') |
+-----------------------------+
| 5 |
+-----------------------------+ Регистърът не е чувствителен
INSTR() извършва търсене без значение на главни и малки букви:
SELECT INSTR('The hot sun', 'HOT'); Резултат:
+-----------------------------+
| INSTR('The hot sun', 'HOT') |
+-----------------------------+
| 5 |
+-----------------------------+ Множество събития
Ако поднизът се среща повече от веднъж, се връща само позицията на първия:
SELECT INSTR('The hot sun is really hot', 'hot'); Резултат:
+-------------------------------------------+
| INSTR('The hot sun is really hot', 'hot') |
+-------------------------------------------+
| 5 |
+-------------------------------------------+ Частично съвпадение
Ако поднизът е част от по-голяма дума, той все още е съвпадение:
SELECT INSTR('The hottest sun', 'hot'); Резултат:
+---------------------------------+
| INSTR('The hottest sun', 'hot') |
+---------------------------------+
| 5 |
+---------------------------------+ Но ако низът е само част от подниза, това не е съвпадение:
SELECT INSTR('The hot sun', 'hottest'); Резултат:
+---------------------------------+
| INSTR('The hot sun', 'hottest') |
+---------------------------------+
| 0 |
+---------------------------------+ Интервали
Знакът за интервал все още е низ, така че можем да включим интервали в подниза, дори ако това е единственият знак:
SELECT INSTR('The hot sun', ' '); Резултат:
+---------------------------+
| INSTR('The hot sun', ' ') |
+---------------------------+
| 4 |
+---------------------------+ Празен низ
Ето какво се случва, когато поднизът е празен низ:
SELECT INSTR('The hot sun', ''); Резултат:
+--------------------------+
| INSTR('The hot sun', '') |
+--------------------------+
| 1 |
+--------------------------+ Няма съвпадение
Ако поднизът не е намерен в низа, INSTR() връща 0 :
SELECT INSTR('The hot sun', 'cold'); Резултат:
+------------------------------+
| INSTR('The hot sun', 'cold') |
+------------------------------+
| 0 |
+------------------------------+ Нулеви аргументи
Предоставяне на null за всеки от аргументите се получава null :
SELECT
INSTR('The hot sun', null),
INSTR(null, 'hot'); Резултат:
+----------------------------+--------------------+
| INSTR('The hot sun', null) | INSTR(null, 'hot') |
+----------------------------+--------------------+
| NULL | NULL |
+----------------------------+--------------------+ Предоставяне на грешен брой аргументи
Извикване на INSTR() с грешен брой аргументи или без подаване на аргументи води до грешка:
SELECT INSTR('hot'); Резултат:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'INSTR'