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

Come trovare una voce di elenco in una posizione specificata in MySQL

In MySQL, puoi usare ELT() funzione per restituire un elemento dell'elenco in una determinata posizione nell'elenco.

La sintassi è questa:

ELT(N,str1,str2,str3,...)

Dove N è la posizione dell'articolo che vuoi restituire e str1,str2,str3,... è l'elenco.

Esempio

Ecco un esempio:

SELECT ELT(3, 'Marge', 'Homer', 'Bart') AS 'Who is at 3?';

Risultato:

+--------------+
| Who is at 3? |
+--------------+
| Bart         |
+--------------+

In questo caso specifichiamo di voler restituire il 3° elemento della lista (perché il primo argomento è 3 ). E in questo caso l'elenco è 'Marge', 'Homer', 'Bart' , quindi il terzo elemento è Bart .

Numeri

Ecco un esempio contenente i numeri:

SELECT ELT(3, 9, 8, 7) AS 'The 3rd item is...';

Risultato:

+--------------------+
| The 3rd item is... |
+--------------------+
| 7                  |
+--------------------+

Esempio di database

Ecco un esempio in cui abbino i risultati di una query di database a un elenco di valori:

SELECT 
    GenreId, 
    ELT(GenreId, 'Rock', 'Jazz', 'Country') AS Genre 
FROM Genres;

Risultato:

+---------+---------+
| GenreId | Genre   |
+---------+---------+
|       1 | Rock    |
|       2 | Jazz    |
|       3 | Country |
|       4 | NULL    |
|       5 | NULL    |
|       6 | NULL    |
|       7 | NULL    |
|       8 | NULL    |
+---------+---------+

In questo caso c'erano più risultati di quelli che ho incluso come parametri, quindi quei risultati sono NULL .

Il ELT() la funzione è un complemento di FIELD() funzione, che permette di trovare la posizione di indice di un dato elemento in un elenco.