Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL - Fonctions ELT () et FILED () pour extraire la position d'index de la liste

MySQL prend en charge certaines fonctions qui peuvent être utilisées pour extraire la position d'index ou la valeur réelle d'un ensemble de valeurs disposées sous forme de tableau. ELT() et FIELD() sont des exemples de telles fonctions. Laissez-nous comprendre à leur sujet dans les détails.

La fonction ELT() accepte de nombreux arguments où le premier argument est le nombre. Il renvoie la valeur qui est disponible à la position spécifiée dans le premier argument.

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

La requête ci-dessus renvoie des résultats sous la forme "Mon SQL". A partir de l'ensemble des valeurs disponibles, il renvoie la 3ème valeur qui est My SQL. Elle renvoie NULL si le premier argument est 0, inférieur à zéro ou supérieur au nombre total d'arguments

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


Voici deux autres exemples qui renverront le résultat sous la forme d'une valeur nulle.

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

Tous les éléments ci-dessus renvoient la valeur NULL.

La fonction FILED() est juste à l'opposé de ELT(). Il accepte de nombreux arguments et renvoie la position de la valeur dans le tableau spécifié comme première valeur

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

Ce qui précède renvoie 3 car la valeur spécifiée dans le premier argument "Mon SQL" est disponible à la 3ème position dans le tableau.

Il renvoie 0 si la valeur n'est pas spécifiée dans le tableau

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

Le résultat est 0.

Avez-vous déjà utilisé ces fonctions dans votre logique métier ? Si oui, j'aimerais les connaître.