Maison > base de données > tutoriel mysql > le corps du texte

Comment rechercher des valeurs spécifiques dans un champ séparé par des virgules dans MySQL ?

Barbara Streisand
Libérer: 2024-11-08 00:01:03
original
339 Les gens l'ont consulté

How to Search for Specific Values in a Comma-Separated Field in MySQL?

Recherche dans un champ séparé par des virgules dans MySQL

Dans MySQL, certains scénarios peuvent survenir dans lesquels les données sont stockées dans un format séparé par des virgules , malgré les pratiques recommandées qui le déconseillent. Cela pose des problèmes lorsqu'on tente d'effectuer des recherches précises dans de tels domaines. Prenons l'exemple suivant :

Une table contient un champ avec des valeurs d'une autre table stockées sous forme de liste séparée par des virgules :

12,13,14,16
Copier après la connexion

La tâche à accomplir consiste à rechercher des valeurs spécifiques dans cette champ à l'aide d'une requête telle que :

SELECT ... WHERE field LIKE '%1%'
Copier après la connexion

Cependant, en raison de la nature des données, une telle requête correspondrait à presque toutes les entrées, car les identifiants les plus courants se situent dans une plage étroite.

Pour résoudre ce problème, une recherche plus spécifique est nécessaire. Au lieu d'utiliser %1%, envisagez d'utiliser %,1,% dans la condition LIKE. Cela correspondra aux valeurs contenant 1 précédé et suivi d'une virgule.

Malheureusement, cette approche présente des limites pour la première et la dernière valeur de la liste séparée par des virgules, car elles ne seront pas mises en correspondance par le modèle.

Par conséquent, une approche différente est nécessaire. MySQL fournit une fonction puissante appelée FIND_IN_SET, qui permet de rechercher dans une liste séparée par des virgules :

SELECT ... WHERE FIND_IN_SET('1', field)
Copier après la connexion

L'utilisation de FIND_IN_SET renverra la position de la valeur spécifiée dans la liste séparée par des virgules, ou 0 si la la valeur n’est pas présente. Cela permet des recherches précises et efficaces même dans des structures de données non idéales.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!