sql >> Database teknologi >  >> RDS >> Mysql

MySQL – ELT() og FILED() funktioner til at udtrække indeksposition fra liste

MySQL understøtter nogle funktioner, der kan bruges til at udtrække indekspositionen eller den faktiske værdi fra et sæt værdier arrangeret som et array. ELT() og FIELD() er eksempler på sådanne funktioner. Lad os forstå dem i detaljer.

ELT()-funktionen accepterer mange argumenter, hvor det første argument er tallet. Det returnerer den værdi, der er tilgængelig på den position, der er angivet i det første argument.

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

Ovenstående forespørgsel returnerer resultater som "Min SQL". Fra det tilgængelige sæt af værdier returnerer det den 3. værdi, som er My SQL. Det returnerer NULL, hvis det første argument er 0, mindre end nul eller større end det samlede antal argumenter

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


Her er yderligere to eksempler, som vil returnere resultatet som en nulværdi.

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

Alle ovenstående returnerer NULL-værdi.

FILED()-funktionen er lige modsat af ELT(). Den accepterer mange argumenter og returnerer værdiens position i det array, der er angivet som den første værdi

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

Ovenstående returnerer 3, da værdien angivet i det første argument "Min SQL" er tilgængelig på den 3. position i arrayet.

Det returnerer 0, hvis værdien ikke er angivet i arrayet

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

Resultatet er 0.

Har du nogensinde brugt disse funktioner i din forretningslogik? Hvis ja, vil jeg gerne vide dem.


  1. SQL Server XML-forespørgsel med flere navnerum

  2. OPDATERINGER til statistik

  3. Sådan forberedes sætninger og bindeparametre i Postgresql til C++

  4. android.database.CursorIndexOutOfBoundsException