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,...])
Où 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'