То, как делает, содержит () в работе мн SQL?

Имейте большое ненужное использование результатов, содержит () метод в моем запросе. Не говорите мне использовать как или что-то еще. Это - hardcoded и не могло быть изменено.

14
задан OMG Ponies 21 March 2010 в 03:09
поделиться

2 ответа

Содержит используется в текстовых полях, которые имеют 'CONTEXT Index', который индексирует текстовое поле для поиска. Стандартное использование выглядит следующим образом (использование оператора score для отображения того, что возвращается из содержит предложение на основе 1 в содержит , соответствующее 1 в ] score ):

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

Для таких данных в таблице table_name

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

Этот запрос вернет

2 A
1 C

So contains похож на like, но будет подсчитывать, сколько раз строка встречается в текстовом поле. . Мне не удалось найти ресурс с помощью Contains, как он используется в опубликованном вами запросе, но я думаю, что это вернет строки, в которых dFullText содержит хотя бы один экземпляр car . , или эквивалент этого sql:

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

Здесь - другой источник.

17
ответ дан 1 December 2019 в 13:47
поделиться

См. Этот пример с oracle.com

declare 
rowno number := 0; 
   begin 
   for c1 in (SELECT SCORE(1) score, title FROM news 
          WHERE CONTAINS(text, 'oracle', 1) > 0
          ORDER BY SCORE(1) DESC) 
   loop 
   rowno := rowno + 1; 
   dbms_output.put_line(c1.title||': '||c1.score); 
exit when rowno = 10; 
end loop; 
end; 
0
ответ дан 1 December 2019 в 13:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: