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

Sådan finder du et listeelement på en specificeret position i MySQL

I MySQL kan du bruge ELT() funktion for at returnere et listeelement på en given position på listen.

Syntaksen ser sådan ud:

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

Hvor N er positionen for den vare, du vil returnere, og str1,str2,str3,... er listen.

Eksempel

Her er et eksempel:

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

Resultat:

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

I dette tilfælde angiver vi, at vi ønsker at returnere det 3. element på listen (fordi det første argument er 3 ). Og i dette tilfælde er listen 'Marge', 'Homer', 'Bart' , så det 3. element er Bart .

Numre

Her er et eksempel, der indeholder tal:

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

Resultat:

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

Databaseeksempel

Her er et eksempel, hvor jeg matcher resultaterne af en databaseforespørgsel til en liste over værdier:

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 dette tilfælde var der flere resultater end jeg inkluderede som parametre, derfor er disse resultater NULL .

ELT() funktion er et supplement til FIELD() funktion, der giver dig mulighed for at finde indekspositionen for et givet element på en liste.


  1. SCOPE_IDENTITY() for GUID'er?

  2. Hvordan får man Insert id i MSSQL i PHP?

  3. Parametrér en SQL IN-sætning

  4. Hvorfor går SQL-id-sekvenser ud af synkronisering (specifikt ved at bruge Postgres)?