Maison >base de données >tutoriel mysql >Puis-je combiner les opérateurs « LIKE » et « IN » de SQL sans sous-requêtes ?
Opérateurs LIKE
et IN
SQL : peuvent-ils être combinés ?
L'opérateur LIKE
de SQL est inestimable pour la correspondance de modèles dans les recherches de texte, mais lorsqu'il s'agit d'un ensemble prédéfini de modèles, l'opérateur IN
offre une lisibilité et une flexibilité améliorées. Cependant, une combinaison directe de LIKE
et IN
n'est pas directement prise en charge dans le SQL standard.
Pourquoi pas de combinaison directe ?
L'absence d'une combinaison directe LIKE
et IN
découle de la disponibilité d'une alternative supérieure : la recherche en texte intégral (FTS).
Recherche en texte intégral (FTS) : une meilleure approche
Oracle et SQL Server offrent tous deux des fonctionnalités FTS robustes, en utilisant des mots-clés tels que CONTAINS
pour rechercher efficacement plusieurs modèles dans une seule requête. Cela remplace efficacement la nécessité de combiner LIKE
et IN
.
Exemples utilisant FTS :
Oracle :
<code class="language-sql">WHERE CONTAINS(t.something, 'bla OR foo OR batz', 1) > 0</code>
SQL Serveur :
<code class="language-sql">WHERE CONTAINS(t.something, '"bla*" OR "foo*" OR "batz*"')</code>
Considérations importantes pour FTS :
t.something
dans les exemples) pour que FTS fonctionne correctement.LIKE
conditions en termes de vitesse et d'efficacité.Par conséquent, même si une combinaison directe LIKE
et IN
n'est pas disponible, FTS fournit une solution plus puissante et plus efficace pour rechercher plusieurs modèles.
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!