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'