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

La différence entre FIELD() et FIND_IN_SET() dans MySQL

MySQL inclut un FIELD() fonction et un FIND_IN_SET() fonction qui renvoient toutes deux la position d'une chaîne dans une liste. Cependant, ces fonctions fonctionnent légèrement différemment les unes des autres.

La principale différence entre ces deux fonctions est la suivante :

  • FIND_IN_SET() renvoie la position d'index d'une chaîne dans une liste de chaînes.
  • FIELD() renvoie la position d'index d'une chaîne dans une liste d'arguments.

Donc, une fonction recherche une liste de chaînes , et l'autre fonction recherche une liste d'arguments .

Syntaxe

Voyons d'abord la syntaxe des deux fonctions :

CHAMP()

La syntaxe du FIELD() la fonction se présente comme suit :

FIELD(str,str1,str2,str3,...)

Il s'agit d'un argument initial, suivi de plusieurs arguments ultérieurs. Ce sont les arguments suivants qui sont recherchés, quel que soit leur nombre.

FIND_IN_SET()

La syntaxe de FIND_IN_SET() la fonction se présente comme suit :

FIND_IN_SET(str,strlist)

Il s'agit d'un argument initial, suivi d'un autre argument. Le deuxième argument contient une liste de chaînes à rechercher.

Exemples

CHAMP()

Voici un exemple du FIELD() fonction en action :

SELECT FIELD('horse', 'Cat','Dog','Horse') AS 'Result';

Résultat :

+--------+
| Result |
+--------+
|      3 |
+--------+

FIND_IN_SET()

Et voici comment le FIND_IN_SET() fonction serait construite pour obtenir le même résultat :

SELECT FIND_IN_SET('horse', 'Cat,Dog,Horse') AS 'Result';

Résultat :

+--------+
| Result |
+--------+
|      3 |
+--------+