sql >> Base de Datos >  >> RDS >> Mysql

MySQL:funciones ELT() y FILED() para extraer la posición del índice de la lista

MySQL admite algunas funciones que se pueden usar para extraer la posición del índice o el valor real de un conjunto de valores organizados como una matriz. ELT() y FIELD() son ejemplos de tales funciones. Vamos a entender acerca de ellos en detalles.

La función ELT() acepta muchos argumentos donde el primer argumento es el número. Devuelve el valor que está disponible en la posición especificada en el primer argumento.

SELECT ELT(3,'SQL','ORACLE','My SQL','SQL SERVER') AS ColumnName;

La consulta anterior devuelve resultados como "Mi SQL". Del conjunto de valores disponibles, devuelve el tercer valor que es My SQL. Devuelve NULL si el primer argumento es 0, menor que cero o mayor que el número total de argumentos

SELECT ELT(0,'SQL','ORACLE','My SQL','SQL SERVER') AS ColumnName;


Aquí hay otros dos ejemplos que devolverán el resultado como un valor nulo.

SELECT ELT(31,'SQL','ORACLE','My SQL','SQL SERVER') AS ColumnName;
SELECT ELT(-5,'SQL','ORACLE','My SQL','SQL SERVER') AS ColumnName;

Todo lo anterior devuelve un valor NULL.

La función ARCHIVO() es justo lo contrario de ELT(). Acepta muchos argumentos y devuelve la posición del valor en la matriz especificada como primer valor

SELECT FIELD('My SQL','SQL','ORACLE','My SQL','SQL SERVER') AS ColumnName;

Lo anterior devuelve 3 ya que el valor especificado en el primer argumento "Mi SQL" está disponible en la 3ra posición en la matriz.

Devuelve 0 si el valor no está especificado en la matriz

SELECT FIELD('COMPUTER','SQL','ORACLE','My SQL','SQL SERVER') AS ColumnName;

El resultado es 0.

¿Ha utilizado alguna vez estas funciones en su lógica empresarial? Si es así, me gustaría conocerlos.