sql >> Databáze >  >> RDS >> Mysql

Jak najít položku seznamu na zadané pozici v MySQL

V MySQL můžete použít ELT() funkce pro vrácení položky seznamu na danou pozici v seznamu.

Syntaxe vypadá takto:

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

Kde N je pozice položky, kterou chcete vrátit, a str1,str2,str3,... je seznam.

Příklad

Zde je příklad:

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

Výsledek:

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

V tomto případě určíme, že chceme vrátit 3. položku v seznamu (protože první argument je 3 ). A v tomto případě je seznam 'Marge', 'Homer', 'Bart' , takže 3. položka je Bart .

Čísla

Zde je příklad obsahující čísla:

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

Výsledek:

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

Příklad databáze

Zde je příklad, kdy porovnám výsledky databázového dotazu se seznamem hodnot:

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

Výsledek:

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

V tomto případě bylo více výsledků, než jsem uvedl jako parametry, proto jsou tyto výsledky NULL .

ELT() funkce je doplněk k FIELD() funkce, která vám umožní najít pozici indexu dané položky v seznamu.


  1. Nasazení MySQL, MariaDB, Percona Server, MongoDB nebo PostgreSQL – snadné s ClusterControl

  2. ADDDATE() vs DATE_ADD() v MySQL:Jaký je rozdíl?

  3. Záměna s Oracle CONNECT BY

  4. Jak poslat výsledky dotazu e-mailem jako přílohu v SQL Server (T-SQL)