MySQL supporta alcune funzioni che possono essere utilizzate per estrarre la posizione dell'indice o il valore effettivo da un insieme di valori disposti come un array. ELT() e FIELD() sono esempi di tali funzioni. Cerchiamo di capire su di loro in dettaglio.
La funzione ELT() accetta molti argomenti in cui il primo argomento è il numero. Restituisce il valore disponibile nella posizione specificata nel primo argomento.
SELECT ELT(3,'SQL','ORACLE','My SQL','SQL SERVER') AS ColumnName;
La query precedente restituisce i risultati come "My SQL". Dall'insieme di valori disponibili, restituisce il 3° valore che è My SQL. Restituisce NULL se il primo argomento è 0, minore di zero o maggiore del numero di argomenti totali
SELECT ELT(0,'SQL','ORACLE','My SQL','SQL SERVER') AS ColumnName;
Ecco altri due esempi che restituiranno il risultato come valore nullo.
SELECT ELT(31,'SQL','ORACLE','My SQL','SQL SERVER') AS ColumnName;
SELECT ELT(-5,'SQL','ORACLE','My SQL','SQL SERVER') AS ColumnName;
Tutto quanto sopra restituisce un valore NULL.
La funzione FILED() è esattamente l'opposto di ELT(). Accetta molti argomenti e restituisce la posizione del valore nell'array specificato come primo valore
SELECT FIELD('My SQL','SQL','ORACLE','My SQL','SQL SERVER') AS ColumnName;
Quanto sopra restituisce 3 poiché il valore specificato nel primo argomento "My SQL" è disponibile nella terza posizione nell'array.
Restituisce 0 se il valore non è specificato nell'array
SELECT FIELD('COMPUTER','SQL','ORACLE','My SQL','SQL SERVER') AS ColumnName;
Il risultato è 0.
Hai mai utilizzato queste funzioni nella tua logica aziendale? Se sì, vorrei conoscerli.