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'