Maison >base de données >tutoriel mysql >SQL peut-il combiner les opérateurs « LIKE » et « IN », et sinon, quelles sont les alternatives ?
Combinaison LIKE
et IN
en SQL : alternatives à la combinaison directe
SQL LIKE
facilite la correspondance de modèles, tandis que IN
vérifie l'appartenance à un ensemble de valeurs. Bien qu'une combinaison directe ne soit pas disponible, des alternatives efficaces existent pour gérer plusieurs LIKE
conditions ou combiner LIKE
avec un ensemble de valeurs.
Le défi des multiples LIKE
Conditions
Utiliser plusieurs instructions OR
avec LIKE
devient lourde et potentiellement inefficace pour de nombreux modèles :
<code class="language-sql">WHERE something LIKE 'bla%' OR something LIKE '%foo%' OR something LIKE 'batz%'</code>
Recherche en texte intégral : une solution puissante
Pour les scénarios nécessitant plusieurs LIKE
conditions ou une combinaison de LIKE
et un ensemble de valeurs, la recherche en texte intégral (FTS) offre une approche supérieure. Oracle et SQL Server offrent tous deux des fonctionnalités FTS.
Implémentation FTS d'Oracle
Oracle utilise le mot-clé CONTAINS
avec l'opérateur OR
pour obtenir l'effet souhaité :
<code class="language-sql">WHERE CONTAINS(t.something, 'bla OR foo OR batz', 1) > 0</code>
Implémentation FTS de SQL Server
SQL Server utilise également CONTAINS
, mais avec une syntaxe légèrement différente pour la correspondance de modèles :
<code class="language-sql">WHERE CONTAINS(t.something, '"bla*" OR "foo*" OR "batz*"')</code>
Remarque importante : Pour des performances FTS optimales, assurez-vous que la colonne appropriée (t.something
dans ces exemples) est correctement indexée à l'aide d'un index de texte intégral.
Lectures complé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!