Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL – ELT()- und FILED()-Funktionen zum Extrahieren der Indexposition aus der Liste

MySQL unterstützt einige Funktionen, die verwendet werden können, um die Indexposition oder den tatsächlichen Wert aus einer Reihe von Werten zu extrahieren, die als Array angeordnet sind. ELT() und FIELD() sind Beispiele für solche Funktionen. Lassen Sie uns sie im Detail verstehen.

Die

ELT()-Funktion akzeptiert viele Argumente, wobei das erste Argument die Zahl ist. Es gibt den Wert zurück, der an der im ersten Argument angegebenen Position verfügbar ist.

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

Die obige Abfrage gibt Ergebnisse als „My SQL“ zurück. Aus der Menge der verfügbaren Werte gibt es den 3. Wert zurück, der My SQL ist. Es gibt NULL zurück, wenn das erste Argument 0, kleiner als null oder größer als die Anzahl der Gesamtargumente ist

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


Hier sind zwei weitere Beispiele, die das Ergebnis als Nullwert zurückgeben.

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

Alle oben genannten geben den NULL-Wert zurück.

Die Funktion

FILED() ist genau das Gegenteil von ELT(). Es akzeptiert viele Argumente und gibt die Position des Werts im Array zurück, der als erster Wert

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

Das Obige gibt 3 zurück, da der im ersten Argument „My SQL“ angegebene Wert an der 3. Position im Array verfügbar ist.

Es gibt 0 zurück, wenn der Wert nicht im Array angegeben ist

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

Das Ergebnis ist 0.

Haben Sie diese Funktionen jemals in Ihrer Geschäftslogik verwendet? Wenn ja, würde ich sie gerne kennenlernen.