Recherche de valeurs séparées par des virgules dans MySQL
Les rencontres avec des tables contenant des listes séparées par des virgules comme références à d'autres tables ne sont pas rares. Ces situations, bien que reconnues comme défavorables, posent des problèmes lors d'une tentative de recherche dans le champ à l'aide d'une requête LIKE.
Lors d'une tentative de recherche d'une valeur spécifique, l'utilisation d'une requête LIKE telle que « %1% » peut entraîner de nombreuses correspondances positives en raison de la plage prédominante (10-20) dans laquelle résident ces identifiants. Pour résoudre ce problème, on pourrait envisager de rechercher des correspondances sous la forme %1,%. Cependant, cette approche ne prend pas en compte les identifiants au début ou à la fin de la liste.
Une solution viable consiste à utiliser la fonction FIND_IN_SET, qui permet aux utilisateurs de rechercher une valeur dans un champ séparé par des virgules. En utilisant FIND_IN_SET('1', field), la requête identifie les enregistrements qui contiennent la valeur « 1 » dans le champ. Cette fonction résout efficacement le problème de la recherche de valeurs spécifiques dans des listes séparées par des virgules et améliore la précision des requêtes de base de données.
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!