В 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'