В MySQL POSITION() функцията връща позицията на първото появяване на подниз в низа.
Тази функция всъщност е синоним на LOCATE() , но с малко по-различен синтаксис. LOCATE() функцията също има допълнителна функционалност, тъй като ви позволява да дефинирате начална позиция за вашето търсене.
Синтаксис
Основният синтаксис е така:
POSITION(substr IN str)
Където substr е поднизът и str е низът.
Пример 1 – Основна употреба
SELECT POSITION('Cat' IN 'The Cat') Result;
Резултат:
+--------+ | Result | +--------+ | 5 | +--------+
Пример 2 – Чувствителност на малки и малки букви
POSITION() функцията е многобайтова безопасна и е чувствителна към малките букви само ако поне един аргумент е двоичен низ.
Така че следният пример не е чувствителен към малки и големи букви:
SELECT POSITION('Cat' IN 'The Cat') Result;
Резултат:
+--------+ | Result | +--------+ | 5 | +--------+
Пример 3 – Няма съвпадение
Функцията връща 0 ако поднизът не е намерен в низа:
SELECT POSITION('Dog' IN 'The cat') Result;
Резултат:
+--------+ | Result | +--------+ | 0 | +--------+
Пример 4 – Вградени поднизове
Бъдете внимателни при избора на подниз. Ако е част от друга дума, можете да получите фалшиво положително:
SELECT POSITION('Cat' IN 'Good Catch!') Result;
Резултат:
+--------+ | Result | +--------+ | 6 | +--------+
Ако търсите само котка , животното, това би било фалшиво положително.
Пример 5 – Само първо появяване
Не забравяйте, че тази функция връща само позицията на първия поява на подниз. Всички последващи събития се игнорират:
SELECT POSITION('Cat' IN 'My cat is bigger than your cat') Result;
Резултат:
+--------+ | Result | +--------+ | 4 | +--------+
Пример 6 – NULL аргументи
Ако някой от аргументите е NULL , резултатът е NULL :
SELECT
POSITION('Cat' IN NULL) 'Result 1',
POSITION(NULL IN 'The Cat') 'Result 2';
Резултат:
+----------+----------+ | Result 1 | Result 2 | +----------+----------+ | NULL | NULL | +----------+----------+
Както споменахме, можете също да използвате LOCATE() функция, която ви позволява да дефинирате начална позиция за вашето търсене.