In MariaDB FIELD()
ist eine integrierte Zeichenfolgenfunktion, die die Indexposition der Zeichenfolge oder Zahl zurückgibt, die dem angegebenen Muster entspricht.
Es akzeptiert zwei oder mehr Argumente. Das erste ist das Muster, nach dem Sie suchen möchten. Alle nachfolgenden Argumente sind die Zeichenfolgen oder Zahlen, mit denen das Muster abgeglichen werden soll.
Syntax
Die Syntax lautet wie folgt:
FIELD(pattern, str1[,str2,...])
Wobei pattern
ist das Muster und str1[, str2,…]
stellt die Zeichenfolgen oder Zahlen dar.
Beispiel
Hier ist ein einfaches Beispiel:
SELECT FIELD('Green', 'Red', 'Green', 'Blue');
Ergebnis:
+----------------------------------------+ | FIELD('Green', 'Red', 'Green', 'Blue') | +----------------------------------------+ | 2 | +----------------------------------------+
In diesem Fall ist das Muster (Green
) steht an zweiter Stelle, also 2
zurückgegeben wird.
Groß-/Kleinschreibung
Das FIELD()
-Funktion behandelt Zeichenfolgen ohne Berücksichtigung der Groß-/Kleinschreibung.
Beispiel:
SELECT FIELD('BLUE', 'Red', 'Green', 'Blue');
Ergebnis:
+---------------------------------------+ | FIELD('BLUE', 'Red', 'Green', 'Blue') | +---------------------------------------+ | 3 | +---------------------------------------+
Keine Übereinstimmung
Wenn es keine Übereinstimmung gibt, 0
zurückgegeben wird.
Beispiel:
SELECT FIELD('Go', 'Red', 'Green', 'Blue');
Ergebnis:
+-------------------------------------+ | FIELD('Go', 'Red', 'Green', 'Blue') | +-------------------------------------+ | 0 | +-------------------------------------+
Zahlen
Wenn alle Argumente Zahlen sind, werden sie als Zahlen behandelt. Andernfalls werden sie als Doubles behandelt.
Beispiel:
SELECT FIELD(3, 40, 2, 18, 10, 3);
Ergebnis:
+----------------------------+ | FIELD(3, 40, 2, 18, 10, 3) | +----------------------------+ | 5 | +----------------------------+
Mehrere Übereinstimmungen
Wenn es mehrere Übereinstimmungen des Musters gibt, wird nur der Index des ersten zurückgegeben:
SELECT FIELD(3, 40, 3, 18, 10, 3);
Ergebnis:
+----------------------------+ | FIELD(3, 40, 3, 18, 10, 3) | +----------------------------+ | 2 | +----------------------------+
Angeben eines Nullmusters
Bereitstellung von null
als erstes Argument ergibt 0
:
SELECT FIELD(null, 1, 2, 3);
Ergebnis:
+----------------------+ | FIELD(null, 1, 2, 3) | +----------------------+ | 0 | +----------------------+
Nur ein String-Argument bereitstellen
Es ist gültig, ein einzelnes Argument für den Abgleich anzugeben:
SELECT FIELD(205, 205);
Ergebnis:
+-----------------+ | FIELD(205, 205) | +-----------------+ | 1 | +-----------------+
Einzelnes Argument
Aber nur ein Argument an FIELD()
übergeben gibt einen Fehler zurück:
SELECT FIELD(205);
Ergebnis:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FIELD'
Fehlendes Argument
Aufruf von FIELD()
ohne Übergabe von Argumenten ergibt sich ein Fehler:
SELECT FIELD();
Ergebnis:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FIELD'