Combiner LIKE et IN pour une correspondance de modèles flexible dans SQL Server
Les requêtes SQL Server peuvent exploiter la puissance de LIKE
et de IN
pour une correspondance de modèles sophistiquée et des comparaisons d'ensembles. Cependant, les combiner directement n’est pas syntaxiquement valide. La solution réside dans l'utilisation stratégique de l'opérateur OR
.
Disons que vous souhaitez rechercher des lignes dans lesquelles une colonne correspond à plusieurs modèles. Au lieu de tenter une combinaison directe LIKE
et IN
, utilisez plusieurs conditions LIKE
jointes par OR
:
<code class="language-sql">SELECT * FROM your_table WHERE column LIKE 'Text%' OR column LIKE 'Hello%' OR column LIKE 'That%';</code>
Cette requête recherche efficacement les lignes où column
commence par « Texte », « Bonjour » ou « Cela ». Il renverra des lignes contenant :
Cette approche reflète la fonctionnalité de IN
(qui effectue des contrôles d'égalité), mais l'adapte pour la correspondance de modèles avec LIKE
. Notez qu'un IN
direct avec des motifs génériques (IN ('Text%', 'Hello%', 'That%')
) est une syntaxe SQL incorrecte.
Pour une efficacité améliorée, envisagez de consolider plusieurs conditions LIKE
en une seule instruction LIKE
à l'aide de l'opérateur |
(OR) dans le modèle :
<code class="language-sql">SELECT * FROM your_table WHERE column LIKE '%Text%|%Hello%|%That%';</code>
Cette requête optimisée obtient le même résultat avec un plan d'exécution plus concis et potentiellement plus rapide. N'oubliez pas d'échapper à tout caractère spécial dans vos modèles de recherche si nécessaire.
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!