MySQL stöder vissa funktioner som kan användas för att extrahera indexpositionen eller det faktiska värdet från en uppsättning värden arrangerade som en array. ELT() och FIELD() är exempel på sådana funktioner. Låt oss förstå dem i detaljer.
ELT()-funktionen accepterar många argument där det första argumentet är talet. Den returnerar värdet som är tillgängligt på den position som anges i det första argumentet.
SELECT ELT(3,'SQL','ORACLE','My SQL','SQL SERVER') AS ColumnName;
Frågan ovan returnerar resultat som "Min SQL". Från uppsättningen tillgängliga värden returnerar den det tredje värdet som är My SQL. Den returnerar NULL om det första argumentet är 0, mindre än noll eller större än antalet totala argument
SELECT ELT(0,'SQL','ORACLE','My SQL','SQL SERVER') AS ColumnName;
Här är ytterligare två exempel som kommer att returnera resultatet som ett nollvärde.
SELECT ELT(31,'SQL','ORACLE','My SQL','SQL SERVER') AS ColumnName;
SELECT ELT(-5,'SQL','ORACLE','My SQL','SQL SERVER') AS ColumnName;
Alla ovanstående returnerar NULL-värde.
FILED()-funktionen är precis motsatsen till ELT(). Den accepterar många argument och returnerar positionen för värdet i den matris som anges som det första värdet
SELECT FIELD('My SQL','SQL','ORACLE','My SQL','SQL SERVER') AS ColumnName;
Ovanstående returnerar 3 eftersom värdet som anges i det första argumentet "My SQL" är tillgängligt på den tredje positionen i arrayen.
Det returnerar 0 om värdet inte anges i arrayen
SELECT FIELD('COMPUTER','SQL','ORACLE','My SQL','SQL SERVER') AS ColumnName;
Resultatet är 0.
Har du någonsin använt dessa funktioner i din affärslogik? Om ja, skulle jag vilja veta dem.