Maison >base de données >tutoriel mysql >Puis-je combiner les opérateurs « LIKE » et « IN » de SQL sans sous-requêtes ?

Puis-je combiner les opérateurs « LIKE » et « IN » de SQL sans sous-requêtes ?

DDD
DDDoriginal
2025-01-21 13:37:10504parcourir

Can I Combine SQL's `LIKE` and `IN` Operators Without Subqueries?

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 :

  • Index de texte intégral : Un index de texte intégral est requis sur la colonne cible (t.something dans les exemples) pour que FTS fonctionne correctement.
  • Variations de syntaxe : Notez les légères différences de syntaxe entre les implémentations FTS d'Oracle et de SQL Server.
  • Performance : FTS surpasse généralement plusieurs LIKE conditions en termes de vitesse et d'efficacité.
  • Fonctionnalités avancées : FTS fournit souvent des fonctionnalités avancées telles que la notation de pertinence et le classement des résultats.

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!

Déclaration:
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