Maison  >  Article  >  base de données  >  Comment rechercher efficacement des valeurs dans des listes de champs MySQL séparés par des virgules ?

Comment rechercher efficacement des valeurs dans des listes de champs MySQL séparés par des virgules ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-12 05:44:02865parcourir

How to Efficiently Search for Values in Comma-Separated MySQL Field Lists?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn