В MariaDB, FIND_IN_SET() е вградена функция за низове, която връща позицията на индекса, където дадения модел се среща в посочения списък с низове.
Приема два аргумента. Първият е моделът, който искате да търсите. Вторият аргумент е низ, съдържащ стойности, разделени със запетая, за които да съпоставим шаблона.
Синтаксис
Синтаксисът е така:
FIND_IN_SET(pattern, strlist)
Където pattern е шаблонът, който искате да търсите, и strlist представлява низ от стойности, разделени със запетая, за търсене.
Пример
Ето един основен пример:
SELECT FIND_IN_SET('Green', 'Red,Green,Blue'); Резултат:
+----------------------------------------+
| FIND_IN_SET('Green', 'Red,Green,Blue') |
+----------------------------------------+
| 2 |
+----------------------------------------+
В този случай шаблонът (Green ) се появява на втора позиция и така 2 се връща.
Няма съвпадение
Ако няма съвпадение, 0 се връща.
Пример:
SELECT FIND_IN_SET('Nope', 'Red,Green,Blue'); Резултат:
+---------------------------------------+
| FIND_IN_SET('Nope', 'Red,Green,Blue') |
+---------------------------------------+
| 0 |
+---------------------------------------+ Множество съвпадения
Ако има няколко съвпадения, се връща само индексът на първото:
SELECT FIND_IN_SET('Dog', 'Cat,Dog,Cat,Dog,Cat'); Резултат:
+-------------------------------------------+
| FIND_IN_SET('Dog', 'Cat,Dog,Cat,Dog,Cat') |
+-------------------------------------------+
| 2 |
+-------------------------------------------+ Указване на нулев модел
Предоставяне на null тъй като първият аргумент води до null се връща:
SELECT FIND_IN_SET(null, 'Cat,Dog,Cat'); Резултат:
+----------------------------------+ | FIND_IN_SET(null, 'Cat,Dog,Cat') | +----------------------------------+ | NULL | +----------------------------------+
Указване на списък с нулеви низове
Предоставяне на null тъй като вторият аргумент също води до null :
SELECT FIND_IN_SET('Dog', null); Резултат:
+--------------------------+
| FIND_IN_SET('Dog', null) |
+--------------------------+
| NULL |
+--------------------------+ Списък с празни низове
Ако списъкът с низове е празен, FIND_IN_SET() връща 0 :
SELECT FIND_IN_SET('Dog', ''); Резултат:
+------------------------+
| FIND_IN_SET('Dog', '') |
+------------------------+
| 0 |
+------------------------+ Запетая в шаблона
FIND_IN_SET() не връща правилния резултат, ако шаблонът съдържа запетая:
SELECT FIND_IN_SET('Green,', 'Red,Green,Blue'); Резултат:
+-----------------------------------------+
| FIND_IN_SET('Green,', 'Red,Green,Blue') |
+-----------------------------------------+
| 0 |
+-----------------------------------------+ Единичен аргумент
Подаване само на един аргумент към FIND_IN_SET() връща грешка:
SELECT FIND_IN_SET('Cat'); Резултат:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FIND_IN_SET'
Липсващ аргумент
Извикване на FIND_IN_SET() без подаване на аргументи води до грешка:
SELECT FIND_IN_SET(); Резултат:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FIND_IN_SET'