Maison > Article > base de données > Comment rechercher efficacement des valeurs dans des listes de champs MySQL séparés par des virgules ?
Recherche de valeurs dans des listes de champs MySQL séparés par des virgules
Ce problème survient lorsqu'un champ MySQL contient des ID séparés par des virgules, par exemple : " 12,13,14,16." Toute tentative de recherche dans ce champ à l'aide de l'opérateur LIKE avec une simple correspondance de sous-chaîne, telle que "SELECT ... WHERE field LIKE '%1%'", donne des résultats médiocres en raison de l'occurrence élevée d'ID communs dans une plage spécifique.
Pour résoudre ce problème efficacement, utilisez la fonction FIND_IN_SET. Cette fonction vérifie si une valeur spécifiée existe dans une chaîne séparée par des virgules et renvoie la position de cette valeur si elle est trouvée. Par exemple, la requête suivante localise efficacement les lignes où la valeur « 1 » est présente dans le champ « champ » :
SELECT ... WHERE FIND_IN_SET('1', field)
Cette solution effectue un filtrage précis en recherchant la valeur exacte dans la zone spécifiée séparée par des virgules. list, évitant les faux positifs rencontrés avec l'opérateur LIKE.
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!