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

MySQL – funkce ELT() a FILED() pro extrahování pozice indexu ze seznamu

MySQL podporuje některé funkce, které lze použít k extrahování pozice indexu nebo skutečné hodnoty ze sady hodnot uspořádaných jako pole. ELT() a FIELD() jsou příklady takových funkcí. Pojďme se o nich podrobně seznámit.

Funkce ELT() přijímá mnoho argumentů, kde prvním argumentem je číslo. Vrací hodnotu, která je dostupná na pozici zadané v prvním argumentu.

SELECT ELT(3,'SQL','ORACLE','My SQL','SQL SERVER') AS ColumnName;

Výše uvedený dotaz vrátí výsledky jako „My SQL“. Ze sady dostupných hodnot vrátí 3. hodnotu, která je My SQL. Vrátí NULL, pokud je první argument 0, menší než nula nebo větší než celkový počet argumentů

SELECT ELT(0,'SQL','ORACLE','My SQL','SQL SERVER') AS ColumnName;


Zde jsou další dva příklady, které vrátí výsledek jako nulovou hodnotu.

SELECT ELT(31,'SQL','ORACLE','My SQL','SQL SERVER') AS ColumnName;
SELECT ELT(-5,'SQL','ORACLE','My SQL','SQL SERVER') AS ColumnName;

Všechny výše uvedené vrátí hodnotu NULL.

Funkce FILED() je pravým opakem funkce ELT(). Přijímá mnoho argumentů a vrací pozici hodnoty v poli určeném jako první hodnota

SELECT FIELD('My SQL','SQL','ORACLE','My SQL','SQL SERVER') AS ColumnName;

Výše uvedené vrátí 3, protože hodnota zadaná v prvním argumentu „My SQL“ je dostupná na 3. pozici v poli.

Pokud hodnota není uvedena v poli, vrátí 0

SELECT FIELD('COMPUTER','SQL','ORACLE','My SQL','SQL SERVER') AS ColumnName;

Výsledek je 0.

Použili jste někdy tyto funkce ve své obchodní logice? Pokud ano, rád bych je poznal.


  1. Automatické zvýšení indexu pro Microsoft SQL Server 2008 R2

  2. GROUP BY bez agregační funkce

  3. Jak vytvořit databázi MySQL pomocí rozhraní příkazového řádku (CLI)

  4. Jak vypsat databáze a tabulky v PostgreSQL pomocí psql