Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Unterschied zwischen Suchkriterien zwischen Like und Contains() in Oracle

LIKE und CONTAINS sind grundlegend unterschiedliche Suchmethoden.

LIKE ist ein sehr einfacher String-Muster-Matcher - er erkennt zwei Platzhalter (%) und (_), die mit null oder mehr bzw. genau einem Zeichen übereinstimmen. In Ihrem Fall stimmt %a%e% mit zwei Datensätzen in Ihrer Tabelle überein – es sucht nach null oder mehr Zeichen gefolgt von a , gefolgt von null oder mehr Zeichen, gefolgt von e , gefolgt von null oder mehr Zeichen. Es ist auch sehr einfach in seinem Rückgabewert:Es gibt entweder "übereinstimmend" oder "nicht übereinstimmend" zurück - keine Graustufen.

CONTAINS ist ein leistungsstarkes Suchwerkzeug, das einen Kontextindex verwendet, der eine Art Wortbaum aufbaut, der mit der CONTAINS-Suchsyntax durchsucht werden kann. Es kann verwendet werden, um nach einem einzelnen Wort oder einer Kombination von Wörtern zu suchen, und hat eine eigene reichhaltige Syntax, wie z. B. boolesche Operatoren (AND, NEAR, ACCUM). Es ist auch insofern leistungsstärker, als es anstelle eines einfachen "übereinstimmend" oder "nicht übereinstimmend" eine "Punktzahl" zurückgibt, die verwendet werden kann, um Ergebnisse in der Reihenfolge ihrer Relevanz zu ordnen; z.B. CONTAINS(col, 'dog NEAR cat') gibt eine höhere Punktzahl für ein Dokument zurück, in dem diese beiden Wörter beide nahe beieinander gefunden werden.