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

Cómo funciona FIELD() en MariaDB

En MariaDB, FIELD() es una función de cadena integrada que devuelve la posición de índice de la cadena o el número que coincide con el patrón especificado.

Acepta dos o más argumentos. El primero es el patrón que desea buscar. Todos los argumentos subsiguientes son las cadenas o números con los que comparar el patrón.

Sintaxis

La sintaxis es así:

FIELD(pattern, str1[,str2,...])

Donde pattern es el patrón, y str1[, str2,…] representa las cadenas o números.

Ejemplo

He aquí un ejemplo básico:

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

Resultado:

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

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

Sensibilidad de mayúsculas y minúsculas

El FIELD() La función trata las cadenas como si no distinguieran entre mayúsculas y minúsculas.

Ejemplo:

SELECT FIELD('BLUE', 'Red', 'Green', 'Blue');

Resultado:

+---------------------------------------+
| FIELD('BLUE', 'Red', 'Green', 'Blue') |
+---------------------------------------+
|                                     3 |
+---------------------------------------+

Sin coincidencia

Si no hay ninguna coincidencia, 0 es devuelto.

Ejemplo:

SELECT FIELD('Go', 'Red', 'Green', 'Blue');

Resultado:

+-------------------------------------+
| FIELD('Go', 'Red', 'Green', 'Blue') |
+-------------------------------------+
|                                   0 |
+-------------------------------------+

Números

Cuando todos los argumentos son números, se tratan como números. De lo contrario, son tratados como dobles.

Ejemplo:

SELECT FIELD(3, 40, 2, 18, 10, 3);

Resultado:

+----------------------------+
| FIELD(3, 40, 2, 18, 10, 3) |
+----------------------------+
|                          5 |
+----------------------------+

Coincidencias Múltiples

Si hay varias coincidencias del patrón, solo se devuelve el índice de la primera:

SELECT FIELD(3, 40, 3, 18, 10, 3);

Resultado:

+----------------------------+
| FIELD(3, 40, 3, 18, 10, 3) |
+----------------------------+
|                          2 |
+----------------------------+

Especificar un patrón nulo

Proporcionar null ya que el primer argumento da como resultado 0 :

SELECT FIELD(null, 1, 2, 3);

Resultado:

+----------------------+
| FIELD(null, 1, 2, 3) |
+----------------------+
|                    0 |
+----------------------+

Proporcionar solo un argumento de cadena

Proporcionar un único argumento para que coincida es válido:

SELECT FIELD(205, 205);

Resultado:

+-----------------+
| FIELD(205, 205) |
+-----------------+
|               1 |
+-----------------+

Argumento único

Pero pasando solo un argumento a FIELD() devuelve un error:

SELECT FIELD(205);

Resultado:

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

Argumento faltante

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

SELECT FIELD();

Resultado:

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