MariaDB
 sql >> база данни >  >> RDS >> MariaDB

Как работи FIND_IN_SET() в MariaDB

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Поправете грешка 1064 (42000) при използване на оператора MINUS в MariaDB

  2. Десет съвета как да постигнете сигурност на MySQL и MariaDB

  3. Популярни Docker изображения за MySQL и MariaDB сървър

  4. Мониторинг на сигурността на базата данни за MySQL и MariaDB

  5. Как да настроите наречени часови зони в MariaDB