sql >> Databasteknik >  >> RDS >> Oracle

Hur fungerar contains() i PL-SQL?

Innehåller används på textfält som har ett 'CONTEXT Index', som indexerar ett textfält för sökning. Standardanvändningen är så här (med score). operatör för att visa vad som returneras från contains sats baserad på 1 i contains matchar 1:an i score ):

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

För data som denna i tabellen table_name

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

Den frågan skulle returnera

2 A
1 C

Så innehåller liknar gilla, men kommer att räkna hur många gånger en sträng förekommer i ett textfält. Jag kunde inte hitta en resurs med Innehåller hur den används i frågan du postade, men jag tror att det skulle returnera rader där dFullText har minst en instans av car i den, eller motsvarigheten till denna sql:

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

Här är en annan källa.



  1. Alternativt utdataformat för psql

  2. Oracle Infoga via Välj från flera tabeller där en tabell kanske inte har en rad

  3. Installera MySQL Python på Mac OS X

  4. oracle PL/SQL hur man beräknar intervall ip för IPv6 cidr