MariaDB
 sql >> Base de données >  >> RDS >> MariaDB

Fonctionnement de FIELD() dans MariaDB

Dans MariaDB, FIELD() est une fonction de chaîne intégrée qui renvoie la position d'index de la chaîne ou du nombre correspondant au modèle spécifié.

Il accepte deux arguments ou plus. Le premier est le motif que vous souhaitez rechercher. Tous les arguments suivants sont les chaînes ou les nombres auxquels faire correspondre le modèle.

Syntaxe

La syntaxe ressemble à ceci :

FIELD(pattern, str1[,str2,...])

pattern est le motif, et str1[, str2,…] représente les chaînes ou les nombres.

Exemple

Voici un exemple de base :

SELECT FIELD('Green', 'Red', 'Green', 'Blue');

Résultat :

+----------------------------------------+
| FIELD('Green', 'Red', 'Green', 'Blue') |
+----------------------------------------+
|                                      2 |
+----------------------------------------+

Dans ce cas, le motif (Green ) apparaît en deuxième position, et donc 2 est renvoyé.

Sensibilité à la casse

Le FIELD() la fonction traite les chaînes comme insensibles à la casse.

Exemple :

SELECT FIELD('BLUE', 'Red', 'Green', 'Blue');

Résultat :

+---------------------------------------+
| FIELD('BLUE', 'Red', 'Green', 'Blue') |
+---------------------------------------+
|                                     3 |
+---------------------------------------+

Aucune correspondance

S'il n'y a pas de correspondance, 0 est renvoyé.

Exemple :

SELECT FIELD('Go', 'Red', 'Green', 'Blue');

Résultat :

+-------------------------------------+
| FIELD('Go', 'Red', 'Green', 'Blue') |
+-------------------------------------+
|                                   0 |
+-------------------------------------+

Numéros

Lorsque tous les arguments sont des nombres, ils sont traités comme des nombres. Sinon, ils sont traités comme des doubles.

Exemple :

SELECT FIELD(3, 40, 2, 18, 10, 3);

Résultat :

+----------------------------+
| FIELD(3, 40, 2, 18, 10, 3) |
+----------------------------+
|                          5 |
+----------------------------+

Plusieurs correspondances

S'il existe plusieurs correspondances du modèle, seul l'index du premier est renvoyé :

SELECT FIELD(3, 40, 3, 18, 10, 3);

Résultat :

+----------------------------+
| FIELD(3, 40, 3, 18, 10, 3) |
+----------------------------+
|                          2 |
+----------------------------+

Spécification d'un motif nul

Fournir null car le premier argument donne 0 :

SELECT FIELD(null, 1, 2, 3);

Résultat :

+----------------------+
| FIELD(null, 1, 2, 3) |
+----------------------+
|                    0 |
+----------------------+

Fournir un seul argument de chaîne

Fournir un seul argument pour correspondre est valide :

SELECT FIELD(205, 205);

Résultat :

+-----------------+
| FIELD(205, 205) |
+-----------------+
|               1 |
+-----------------+

Argument unique

Mais en passant un seul argument à FIELD() renvoie une erreur :

SELECT FIELD(205);

Résultat :

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FIELD'

Argument manquant

Appel de FIELD() sans passer d'arguments entraîne une erreur :

SELECT FIELD();

Résultat :

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FIELD'