Maison > base de données > tutoriel mysql > Comment trouver efficacement des valeurs spécifiques dans des chaînes séparées par des virgules à l'aide de MySQL ?

Comment trouver efficacement des valeurs spécifiques dans des chaînes séparées par des virgules à l'aide de MySQL ?

Mary-Kate Olsen
Libérer: 2025-01-22 21:21:11
original
1005 Les gens l'ont consulté

How to Efficiently Find Specific Values in Comma-Separated Strings Using MySQL?

Requêtes MySQL : cibler précisément les valeurs dans des chaînes séparées par des virgules

De nombreuses bases de données utilisent des champs contenant des valeurs séparées par des virgules (CSV). Cela présente souvent des défis lors de la recherche de valeurs spécifiques dans ces chaînes. Considérons une colonne COLORS dans un tableau SHIRTS. Une simple requête LIKE, telle que SELECT * FROM SHIRTS WHERE COLORS LIKE '%1%', peut produire des résultats inexacts, renvoyant des entrées où « 1 » fait partie d'une valeur plus grande (par exemple, « 12 » ou « 15 »).

Pour récupérer avec précision uniquement les chemises de couleur « 1 », évitez les correspondances partielles. Voici deux stratégies efficaces :

Méthode 1 : Ajouter des virgules pour une correspondance précise

Cette approche consiste à encadrer la chaîne CSV de virgules avant la comparaison. Cela garantit que seules les valeurs complètes correspondent :

<code class="language-sql">SELECT * FROM SHIRTS WHERE CONCAT(',', COLORS, ',') LIKE '%,1,%'</code>
Copier après la connexion

En ajoutant des virgules de début et de fin, seules les entrées où « ,1 » existe dans la chaîne seront sélectionnées.

Méthode 2 : Utiliser FIND_IN_SET

La fonction FIND_IN_SET offre une solution plus directe. Il identifie la position d'une sous-chaîne dans une chaîne séparée par des virgules, renvoyant une valeur non nulle si elle est trouvée :

<code class="language-sql">SELECT * FROM SHIRTS WHERE FIND_IN_SET('1', COLORS) > 0</code>
Copier après la connexion

Cette méthode est particulièrement utile lorsqu'il s'agit d'identifiants numériques ou de codes de couleur. Il vérifie directement la présence de « 1 » comme valeur distincte dans la chaîne COLORS.

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