sql >> Databasteknik >  >> RDS >> Mysql

Hur man hittar ett listobjekt på en specificerad position i MySQL

I MySQL kan du använda ELT() funktion för att returnera ett listobjekt på en given plats i listan.

Syntaxen ser ut så här:

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

Där N är positionen för varan du vill returnera, och str1,str2,str3,... är listan.

Exempel

Här är ett exempel:

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

Resultat:

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

I det här fallet anger vi att vi vill returnera det tredje objektet i listan (eftersom det första argumentet är 3 ) . Och i det här fallet är listan 'Marge', 'Homer', 'Bart' , så det tredje objektet är Bart .

Siffror

Här är ett exempel som innehåller siffror:

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

Resultat:

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

Databasexempel

Här är ett exempel där jag matchar resultaten av en databasfråga med en lista med värden:

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

Resultat:

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

I det här fallet fanns det fler resultat än vad jag inkluderade som parametrar, därför är dessa resultat NULL .

ELT() funktionen är ett komplement till FIELD() funktion, som låter dig hitta indexpositionen för ett givet objekt i en lista.


  1. 6 funktioner för att hämta dag, månad och år från ett datum i SQL Server

  2. Hur man lösenordsskyddar en databas i Access 2016

  3. Välj antal rader i en annan tabell i en Postgres SELECT-sats

  4. SQL Server Performance File IO-statistik