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

Jak vrátit pozici argumentu v seznamu argumentů v MySQL

V MySQL můžete použít FIELD() funkce, která vrátí pozici daného řetězce nebo čísla v seznamu argumentů. Funkce vrátí index (pozici) prvního argumentu v seznamu následujících argumentů.

Syntaxe vypadá takto:

FIELD(str,str1,str2,str3,...)

Kde str je položka, kterou chcete najít, a str1,str2,str3,... je seznam, který prohledáváte.

Zde je příklad:

SELECT FIELD('Homer', 'Marge', 'Homer', 'Bart') AS 'Where is Homer?';

Výsledek:

+-----------------+
| Where is Homer? |
+-----------------+
|               2 |
+-----------------+

V tomto příkladu je seznam:'Marge', 'Homer', 'Bart' a hledáme řetězec Homer v tomto seznamu. A protože Homer je 2. položka v seznamu argumentů, výsledek je 2 .

Přesná shoda

Všimněte si, že se musí jednat o přesnou shodu, jinak vrátí 0 .

Pokud například vypustíme r z Homer , nakonec hledáme Home místo toho:

SELECT FIELD('Home', 'Marge', 'Homer', 'Bart') AS 'Where is Home?';

Výsledek:

+-----------------+
| Where is Home? |
+-----------------+
|               0 |
+-----------------+

V tomto případě, i když Homer obsahuje Home , nejde o přesnou shodu a výsledek je 0 .

 Čísla

FIELD() funkce funguje také s čísly:

SELECT FIELD(1, 3, 2, 1) AS 'Where is 1?';

Výsledek:

+-------------+
| Where is 1? |
+-------------+
|           3 |
+-------------+

Když jsou všechny argumenty pro FIELD() jsou čísla, všechny argumenty jsou porovnávány jako čísla. Pokud jsou všechny řetězce, jsou porovnávány jako řetězce. Pokud jsou smíšené, jsou porovnány jako dvojité.

FIELD() Funkce je doplněk k ELT() funkce, která vám umožňuje najít položku seznamu podle její pozice v seznamu.

Viz také Jak vrátit pozici položky seznamu pomocí FIND_IN_SET() funkce.


  1. Příkaz SUBSTRING v SQL:Primer

  2. MySQL:Klonování databáze MySQL na stejné instanci MySql

  3. PL/SQL program pro tisk údajů o zaměstnanci

  4. Výběr náhodných řádků pomocí MySQL