sql >> Database >  >> RDS >> Oracle

Hoe werkt bevat() in PL-SQL?

Bevat wordt gebruikt op tekstvelden die een 'CONTEXT Index' hebben, die een tekstveld indexeert om te zoeken. Het standaardgebruik is als volgt (met behulp van de score operator om weer te geven wat wordt geretourneerd door de contains clausule gebaseerd op de 1 in contains overeenkomend met de 1 in score ):

SELECT score(1), value
FROM table_name
WHERE CONTAINS(textField, 'searchString', 1) > 0;

Voor gegevens zoals deze in tabel table_name

value  |  textField
-------|-----------------------------------------------
A      |   'Here is searchString.  searchString again.'
B      |   'Another string'
C      |   'Just one searchString'

Die zoekopdracht zou terugkeren

2 A
1 C

Dus bevat is vergelijkbaar met leuk, maar telt hoe vaak een tekenreeks in een tekstveld voorkomt. Ik kon geen bron vinden met Bevat zoals het wordt gebruikt in de zoekopdracht die je hebt gepost, maar ik denk dat dat rijen zou opleveren waar dFullText heeft ten minste één exemplaar van car erin, of het equivalent van deze sql:

Select * from blabla where dFullText like "%car%"

Hier is nog een bron.



  1. Waarom hebben we de GLOB-clausule in SQLite nodig?

  2. Een tabel met een specifieke kolom vinden in postgresql

  3. Hoe de ASCII-code voor een bepaald personage te vinden in MySQL

  4. MySQL - Een kolom selecteren die niet in Group By is