In MariaDB, FIELD()
is een ingebouwde tekenreeksfunctie die de indexpositie retourneert van de tekenreeks of het nummer dat overeenkomt met het opgegeven patroon.
Het accepteert twee of meer argumenten. De eerste is het patroon waarnaar u wilt zoeken. Alle volgende argumenten zijn de tekenreeksen of getallen waarmee het patroon overeenkomt.
Syntaxis
De syntaxis gaat als volgt:
FIELD(pattern, str1[,str2,...])
Waar pattern
is het patroon, en str1[, str2,…]
staat voor de tekenreeksen of cijfers.
Voorbeeld
Hier is een eenvoudig voorbeeld:
SELECT FIELD('Green', 'Red', 'Green', 'Blue');
Resultaat:
+----------------------------------------+ | FIELD('Green', 'Red', 'Green', 'Blue') | +----------------------------------------+ | 2 | +----------------------------------------+
In dit geval is het patroon (Green
) komt voor op de tweede positie, en dus 2
wordt geretourneerd.
Hoofdlettergevoeligheid
Het FIELD()
functie behandelt tekenreeksen als niet-hoofdlettergevoelig.
Voorbeeld:
SELECT FIELD('BLUE', 'Red', 'Green', 'Blue');
Resultaat:
+---------------------------------------+ | FIELD('BLUE', 'Red', 'Green', 'Blue') | +---------------------------------------+ | 3 | +---------------------------------------+
Geen overeenkomst
Als er geen overeenkomst is, 0
wordt geretourneerd.
Voorbeeld:
SELECT FIELD('Go', 'Red', 'Green', 'Blue');
Resultaat:
+-------------------------------------+ | FIELD('Go', 'Red', 'Green', 'Blue') | +-------------------------------------+ | 0 | +-------------------------------------+
Cijfers
Als alle argumenten getallen zijn, worden ze als getallen behandeld. Anders worden ze als dubbel behandeld.
Voorbeeld:
SELECT FIELD(3, 40, 2, 18, 10, 3);
Resultaat:
+----------------------------+ | FIELD(3, 40, 2, 18, 10, 3) | +----------------------------+ | 5 | +----------------------------+
Meerdere wedstrijden
Als er meerdere overeenkomsten zijn met het patroon, wordt alleen de index van de eerste geretourneerd:
SELECT FIELD(3, 40, 3, 18, 10, 3);
Resultaat:
+----------------------------+ | FIELD(3, 40, 3, 18, 10, 3) | +----------------------------+ | 2 | +----------------------------+
Een nulpatroon specificeren
null
opgeven aangezien het eerste argument resulteert in 0
:
SELECT FIELD(null, 1, 2, 3);
Resultaat:
+----------------------+ | FIELD(null, 1, 2, 3) | +----------------------+ | 0 | +----------------------+
Slechts één stringargument geven
Het opgeven van één enkel argument om overeen te komen is geldig:
SELECT FIELD(205, 205);
Resultaat:
+-----------------+ | FIELD(205, 205) | +-----------------+ | 1 | +-----------------+
Enkel argument
Maar slechts één argument doorgeven aan FIELD()
geeft een fout:
SELECT FIELD(205);
Resultaat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FIELD'
Ontbrekend argument
FIELD()
. aanroepen zonder het doorgeven van argumenten resulteert in een fout:
SELECT FIELD();
Resultaat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FIELD'