sql >> Database >  >> RDS >> Mysql

Hoe de positie van een argument te retourneren binnen een lijst met argumenten in MySQL

In MySQL kunt u de FIELD() . gebruiken functie om de positie van een gegeven tekenreeks of getal binnen een lijst met argumenten te retourneren. De functie retourneert de index (positie) van het eerste argument in de lijst met volgende argumenten.

De syntaxis gaat als volgt:

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

Waar str is het item dat u wilt vinden, en str1,str2,str3,... is de lijst die u doorzoekt.

Hier is een voorbeeld:

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

Resultaat:

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

In dit voorbeeld is de lijst:'Marge', 'Homer', 'Bart' en we zoeken naar de string Homer binnen die lijst. En omdat Homer is het 2e item in de lijst met argumenten, het resultaat is 2 .

Exacte overeenkomst

Merk op dat het een exacte overeenkomst moet zijn, anders wordt 0 . geretourneerd .

Als we bijvoorbeeld de r van Homer , zoeken we uiteindelijk naar Home in plaats daarvan:

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

Resultaat:

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

In dit geval, hoewel Homer bevat Home , het is geen exacte overeenkomst en het resultaat is 0 .

 Cijfers

Het FIELD() functie werkt ook met cijfers:

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

Resultaat:

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

Wanneer alle argumenten voor FIELD() getallen zijn, worden alle argumenten als getallen vergeleken. Als het allemaal strings zijn, worden ze vergeleken als strings. Als ze gemengd zijn, worden ze als dubbel vergeleken.

Het FIELD() functie is een aanvulling op de ELT() functie, waarmee u een lijstitem kunt vinden op zijn positie in de lijst.

Zie ook hoe u de positie van een lijstitem kunt retourneren met de FIND_IN_SET() functie.


  1. JDBC-verbinding standaard autoCommit-gedrag

  2. Modal Window-berichten weergeven in Oracle Forms met Show_Alert

  3. Hoe u de definitie van een berekende kolom in SQL Server kunt krijgen met behulp van T-SQL

  4. Geef de dag, maand en jaar terug in MySQL