Maison  >  Article  >  base de données  >  Quelle est la différence entre les fonctions MySQL INSTR() et FIND_IN_SET() ?

Quelle est la différence entre les fonctions MySQL INSTR() et FIND_IN_SET() ?

王林
王林avant
2023-09-22 10:25:051038parcourir

MySQL INSTR() 和 FIND_IN_SET() 函数有什么区别?

Comme nous le savons tous, les deux fonctions sont utilisées pour rechercher des chaînes en fonction des arguments qu'elles fournissent, mais il existe des différences significatives entre elles, comme indiqué ci-dessous

  • La liste des chaînes utilisées par la fonction FIND_IN_SET() est lui-même une chaîne A contenant des sous-chaînes séparées par des virgules. Alors que la fonction INSTR() contient une chaîne à partir de laquelle elle trouvera la première occurrence de la sous-chaîne, si elle existe.
  • Pour les entiers, FIND_IN_SET() est plus adaptée que la fonction INSTR(). Cela peut être compris à travers l'exemple suivant

Exemple

mysql> Select IF(INSTR('10,11,12,13',2) > 0,1,0) As Result;
+--------+
| Result |
+--------+
|      1 |
+--------+
1 row in set (0.05 sec)

mysql> Select IF(FIND_IN_SET(2,'10,11,12,13') > 0,1,0)As Result;
+--------+
| Result |
+--------+
|      0 |
+--------+
1 row in set (0.00 sec)

À partir du jeu de résultats de l'exemple ci-dessus, nous pouvons voir que la fonction INSTR() renvoie 1 voire 2 car la chaîne n'est pas présente dans le paramètre. Mais la fonction FIND_IN_SET() renvoie 0, ce qui est la bonne réponse.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer