Maison >base de données >tutoriel mysql >Comment puis-je rechercher efficacement des valeurs spécifiques dans des colonnes délimitées par des virgules ?
Identifier précisément les valeurs dans des listes séparées par des virgules
Défi :
Localiser des valeurs spécifiques dans des colonnes contenant des données séparées par des virgules présente un défi. Les fonctions SQL standard comme IN
ou LIKE
peuvent produire des résultats inexacts en raison de correspondances partielles.
Solution efficace :
Cette requête propose une méthode précise pour déterminer si une valeur cible existe dans une liste délimitée par des virgules :
<code class="language-sql">WHERE (',' + RTRIM(MyColumn) + ',') LIKE '%,' + @search + ',%'</code>
Explication détaillée :
La solution utilise intelligemment la manipulation de chaînes et l'opérateur LIKE
:
RTRIM
supprime les espaces de fin pour éviter les erreurs.LIKE
recherche la valeur @search
exacte, entourée de virgules, n'importe où dans la chaîne de colonne modifiée.Exemple illustratif :
<code class="language-sql">SELECT * FROM table_name WHERE (',' + RTRIM(COLUMN) + ',') LIKE '%,' + 'Cat' + ',%'</code>
Résolution des cas extrêmes :
Cette approche gère efficacement :
Cette technique fournit un moyen fiable et précis de rechercher dans des colonnes délimitées par des virgules, surmontant ainsi les limites des méthodes plus simples.
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!