Oracle
 sql >> Base de données >  >> RDS >> Oracle

différence de critères de recherche entre Like vs Contient () dans Oracle

LIKE et CONTAINS sont des méthodes de recherche fondamentalement différentes.

LIKE est un matcher de modèle de chaîne très simple - il reconnaît deux caractères génériques (%) et (_) qui correspondent respectivement à zéro ou plus, ou exactement un caractère. Dans votre cas, %a%e% correspond à deux enregistrements de votre table - il recherche zéro ou plusieurs caractères suivis de a , suivi de zéro ou plusieurs caractères suivis de e , suivi de zéro ou plusieurs caractères. Il est également très simpliste dans sa valeur de retour :il renvoie soit "matched" ou "not matched" - pas de nuances de gris.

CONTAINS est un outil de recherche puissant qui utilise un index de contexte, qui construit une sorte d'arbre de mots qui peut être recherché à l'aide de la syntaxe de recherche CONTAINS. Il peut être utilisé pour rechercher un seul mot, une combinaison de mots et possède sa propre syntaxe riche, comme les opérateurs booléens (AND, NEAR, ACCUM). Il est également plus puissant dans la mesure où au lieu de renvoyer un simple "matched" ou "not matched", il renvoie un "score", qui peut être utilisé pour classer les résultats par ordre de pertinence ; par exemple. CONTAINS(col, 'dog NEAR cat') renverra un score plus élevé pour un document où ces deux mots sont trouvés proches l'un de l'autre.