MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

Wie FIELD() in MariaDB funktioniert

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'