В MariaDB, FIELD()
е вградена функция за низ, която връща позицията на индекса на низа или числото, съответстващо на посочения шаблон.
Приема два или повече аргумента. Първият е моделът, който искате да търсите. Всички последващи аргументи са низовете или числата, за които да съпоставим шаблона.
Синтаксис
Синтаксисът е така:
FIELD(pattern, str1[,str2,...])
Където pattern
е шаблонът и str1[, str2,…]
представлява низовете или числата.
Пример
Ето един основен пример:
SELECT FIELD('Green', 'Red', 'Green', 'Blue');
Резултат:
+----------------------------------------+ | FIELD('Green', 'Red', 'Green', 'Blue') | +----------------------------------------+ | 2 | +----------------------------------------+
В този случай шаблонът (Green
) се появява на втора позиция и така 2
се връща.
Чувствителност на регистрите
FIELD()
функцията третира низовете като нечувствителни към главни букви.
Пример:
SELECT FIELD('BLUE', 'Red', 'Green', 'Blue');
Резултат:
+---------------------------------------+ | FIELD('BLUE', 'Red', 'Green', 'Blue') | +---------------------------------------+ | 3 | +---------------------------------------+
Няма съвпадение
Ако няма съвпадение, 0
се връща.
Пример:
SELECT FIELD('Go', 'Red', 'Green', 'Blue');
Резултат:
+-------------------------------------+ | FIELD('Go', 'Red', 'Green', 'Blue') | +-------------------------------------+ | 0 | +-------------------------------------+
Числа
Когато всички аргументи са числа, те се третират като числа. В противен случай те се третират като двойници.
Пример:
SELECT FIELD(3, 40, 2, 18, 10, 3);
Резултат:
+----------------------------+ | FIELD(3, 40, 2, 18, 10, 3) | +----------------------------+ | 5 | +----------------------------+
Множество съвпадения
Ако има няколко съвпадения на шаблона, се връща само индексът на първия:
SELECT FIELD(3, 40, 3, 18, 10, 3);
Резултат:
+----------------------------+ | FIELD(3, 40, 3, 18, 10, 3) | +----------------------------+ | 2 | +----------------------------+
Указване на нулев модел
Предоставяне на null
тъй като първият аргумент води до 0
:
SELECT FIELD(null, 1, 2, 3);
Резултат:
+----------------------+ | FIELD(null, 1, 2, 3) | +----------------------+ | 0 | +----------------------+
Предоставяне само на един низов аргумент
Предоставянето на единичен аргумент за съвпадение е валидно:
SELECT FIELD(205, 205);
Резултат:
+-----------------+ | FIELD(205, 205) | +-----------------+ | 1 | +-----------------+
Единичен аргумент
Но подаване само на един аргумент към FIELD()
връща грешка:
SELECT FIELD(205);
Резултат:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FIELD'
Липсващ аргумент
Извикване на FIELD()
без подаване на аргументи води до грешка:
SELECT FIELD();
Резултат:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FIELD'