sql >> Base de Datos >  >> RDS >> MariaDB

Cómo funciona FIND_IN_SET() en MariaDB

En MariaDB, FIND_IN_SET() es una función de cadena integrada que devuelve la posición de índice donde aparece el patrón dado en la lista de cadenas especificada.

Acepta dos argumentos. El primero es el patrón que desea buscar. El segundo argumento es una cadena que contiene valores separados por comas con los que comparar el patrón.

Sintaxis

La sintaxis es así:

FIND_IN_SET(pattern, strlist)

Donde pattern es el patrón que desea buscar y strlist representa la cadena de valores separados por comas para buscar.

Ejemplo

He aquí un ejemplo básico:

SELECT FIND_IN_SET('Green', 'Red,Green,Blue');

Resultado:

+----------------------------------------+
| FIND_IN_SET('Green', 'Red,Green,Blue') |
+----------------------------------------+
|                                      2 |
+----------------------------------------+

En este caso, el patrón (Green ) aparece en la segunda posición, por lo que 2 es devuelto.

Sin coincidencia

Si no hay ninguna coincidencia, 0 es devuelto.

Ejemplo:

SELECT FIND_IN_SET('Nope', 'Red,Green,Blue');

Resultado:

+---------------------------------------+
| FIND_IN_SET('Nope', 'Red,Green,Blue') |
+---------------------------------------+
|                                     0 |
+---------------------------------------+

Coincidencias Múltiples

Si hay varias coincidencias, solo se devuelve el índice de la primera:

SELECT FIND_IN_SET('Dog', 'Cat,Dog,Cat,Dog,Cat');

Resultado:

+-------------------------------------------+
| FIND_IN_SET('Dog', 'Cat,Dog,Cat,Dog,Cat') |
+-------------------------------------------+
|                                         2 |
+-------------------------------------------+

Especificar un patrón nulo

Proporcionar null ya que el primer argumento da como resultado null siendo devuelto:

SELECT FIND_IN_SET(null, 'Cat,Dog,Cat');

Resultado:

+----------------------------------+
| FIND_IN_SET(null, 'Cat,Dog,Cat') |
+----------------------------------+
|                             NULL |
+----------------------------------+

Especificar una lista de cadenas nulas

Proporcionar null como el segundo argumento también da como resultado null :

SELECT FIND_IN_SET('Dog', null);

Resultado:

+--------------------------+
| FIND_IN_SET('Dog', null) |
+--------------------------+
|                     NULL |
+--------------------------+

Lista de cadenas vacías

Si la lista de cadenas está vacía, FIND_IN_SET() devuelve 0 :

SELECT FIND_IN_SET('Dog', '');

Resultado:

+------------------------+
| FIND_IN_SET('Dog', '') |
+------------------------+
|                      0 |
+------------------------+

Coma en el Patrón

FIND_IN_SET() no devuelve el resultado correcto si el patrón contiene una coma:

SELECT FIND_IN_SET('Green,', 'Red,Green,Blue');

Resultado:

+-----------------------------------------+
| FIND_IN_SET('Green,', 'Red,Green,Blue') |
+-----------------------------------------+
|                                       0 |
+-----------------------------------------+

Argumento único

Pasar solo un argumento a FIND_IN_SET() devuelve un error:

SELECT FIND_IN_SET('Cat');

Resultado:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FIND_IN_SET'

Argumento faltante

Llamando a FIND_IN_SET() sin pasar ningún argumento da como resultado un error:

SELECT FIND_IN_SET();

Resultado:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FIND_IN_SET'