Maison > base de données > tutoriel mysql > Comment rechercher efficacement des valeurs dans des colonnes délimitées par des virgules dans SQL Server ?

Comment rechercher efficacement des valeurs dans des colonnes délimitées par des virgules dans SQL Server ?

Susan Sarandon
Libérer: 2025-01-09 17:36:42
original
211 Les gens l'ont consulté

How to Efficiently Search for Values within Comma-Delimited Columns in SQL Server?

Recherche efficace de valeurs dans des colonnes SQL Server séparées par des virgules

Ce guide montre comment localiser efficacement les lignes dans SQL Server 2008 où une valeur spécifique existe dans une colonne délimitée par des virgules. Par exemple, étant donné une colonne contenant « Chat, Chien, Moineau, Truite, Vache, Hippocampe », vous devez déterminer si « Chat » est présent.

Le mot-clé IN ne convient pas ici, car il ne correspond qu'à des valeurs exactes. Les méthodes utilisant CONTAINS() ou LIKE seuls risquent des résultats inexacts en raison de correspondances partielles ou de virgules supplémentaires.

La solution :

L'approche la plus fiable utilise la manipulation de chaînes et l'opérateur LIKE :

WHERE (',' RTRIM(MyColumn) ',') LIKE '%,' @search ',%'

Explication :

  1. Ajouter des virgules : Ajoutez des virgules au début et à la valeur de la colonne (',' RTRIM(MyColumn) ',').
  2. Coupez les espaces de fin : RTRIM() supprime tous les espaces de fin de la valeur de la colonne, évitant ainsi les faux négatifs.
  3. Opérateur LIKE : L'opérateur LIKE avec des caractères génériques (%) garantit une correspondance complète du terme de recherche, en gérant correctement les valeurs au début, au milieu ou à la fin de la liste et en ignorant virgules de début ou de fin.

Cette méthode garantit une identification précise de la valeur de recherche dans la liste séparée par des virgules, quelle que soit sa position ou la présence de virgules supplémentaires.

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