Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL – Funções ELT() e FILED() para extrair a posição do índice da lista

O MySQL suporta algumas funções que podem ser usadas para extrair a posição do índice ou o valor real de um conjunto de valores organizados como um array. ELT() e FIELD() são exemplos de tais funções. Vamos entender sobre eles em detalhes.

A função ELT() aceita muitos argumentos onde o primeiro argumento é o número. Ele retorna o valor que está disponível na posição especificada no primeiro argumento.

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


A consulta acima retorna resultados como "Meu SQL". Do conjunto de valores disponíveis, retorna o 3º valor que é My SQL. Retorna NULL se o primeiro argumento for 0, menor que zero ou maior que o número total de argumentos

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


Aqui estão outros dois exemplos que retornarão o resultado como um valor nulo.
SELECT ELT(31,'SQL','ORACLE','My SQL','SQL SERVER') AS ColumnName;
SELECT ELT(-5,'SQL','ORACLE','My SQL','SQL SERVER') AS ColumnName;

Todos os valores acima retornam NULL.
A função

FILED() é exatamente o oposto de ELT(). Ele aceita muitos argumentos e retorna a posição do valor no array especificado como o primeiro valor

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


O valor acima retorna 3 pois o valor especificado no primeiro argumento “My SQL” está disponível na 3ª posição do array.

Retorna 0 se o valor não for especificado no array

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


O resultado é 0.

Você já usou essas funções em sua lógica de negócios? Se sim, gostaria de conhecê-los.