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