Maison > base de données > tutoriel mysql > Comment faire correspondre avec précision des valeurs spécifiques dans des chaînes MySQL séparées par des virgules ?

Comment faire correspondre avec précision des valeurs spécifiques dans des chaînes MySQL séparées par des virgules ?

Patricia Arquette
Libérer: 2025-01-22 21:32:10
original
908 Les gens l'ont consulté

How to Accurately Match Specific Values in Comma-Separated MySQL Strings?

Faire correspondre des valeurs spécifiques dans une chaîne MySQL séparée par des virgules

Lorsque vous travaillez avec des tableaux contenant des valeurs séparées par des virgules, il est souvent nécessaire d'isoler des valeurs spécifiques au sein de ces chaînes. Toutefois, l'utilisation de l'opérateur LIKE avec le caractère générique (%) peut entraîner des correspondances inattendues.

Considérez le champ COULEURS dans la table CHEMISES, qui contient des valeurs telles que « 1,2,5,12,15 ». Une requête du type "SELECT * FROM shirts WHERE colours LIKE '%1%'" tente de trouver toutes les chemises de couleur rouge (color=1). Cependant, il récupère également de manière inattendue des chemises de couleurs gris (couleur = 12) et orange (couleur = 15).

Solution :

1. Virgules de connexion :

La solution classique consiste à concaténer des virgules sur les côtés gauche et droit de la chaîne :

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

Cela ajoutera une virgule avant et après la chaîne, garantissant que seules les correspondances exactes (couleur = 1) sont sélectionnées.

2. Utilisez la fonction find_in_set :

Vous pouvez également utiliser la fonction find_in_set pour rechercher une valeur spécifique dans une chaîne séparée par des virgules :

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

Cette fonction renverra une valeur non nulle si la valeur spécifiée est trouvée dans la chaîne, isolant ainsi les chemises avec couleur=1.

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