Maison > base de données > tutoriel mysql > Comment rechercher efficacement des valeurs spécifiques dans des listes séparées par des virgules dans MySQL ?

Comment rechercher efficacement des valeurs spécifiques dans des listes séparées par des virgules dans MySQL ?

Linda Hamilton
Libérer: 2024-11-09 14:17:02
original
882 Les gens l'ont consulté

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

Recherche de listes séparées par des virgules dans MySQL

Lorsque vous traitez un champ MySQL contenant une liste d'identifiants séparés par des virgules (par exemple, " 12,13,14,16"), il devient difficile de rechercher spécifiquement certaines valeurs dans cette liste à l'aide d'un LIKE opérateur.

Un utilisateur confronté à ce problème a cherché un moyen de rechercher une valeur spécifique (par exemple, "1") dans un tel champ. Cependant, l'utilisation d'une requête telle que "SELECT... WHERE field LIKE '%1%'" entraînerait la récupération de presque toutes les entrées en raison de la prévalence des identifiants compris entre 10 et 20 dans le champ.

Pour résoudre ce problème, l'utilisateur a envisagé de rechercher « %1,% » à la place. Cependant, cette approche ne fonctionnerait pas pour le premier et le dernier identifiant du champ.

Solution : fonction FIND_IN_SET

La solution réside dans l'utilisation de la fonction FIND_IN_SET dans MySQL. FIND_IN_SET prend deux arguments : une chaîne à rechercher et une chaîne séparée par des virgules dans laquelle rechercher. Il renvoie la position de la chaîne recherchée dans la chaîne de recherche, ou 0 si elle n'est pas trouvée.

Dans ce cas, pour rechercher "1" dans le champ, la requête serait :

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

Cette requête renverra uniquement les lignes où « 1 » est présent dans la liste des identifiants séparés par des virgules dans le champ.

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