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.