Как я могу использовать `contains` в oracle для быстрого полнотекстового поиска текста, но я хочу, чтобы он работал как`like` %texthere%

Можно ли получить функциональность так же, как like

Я хочу это, потому что у меня есть 6 миллионов записей для поиска.

У меня есть запись в таблице

himanshux 
himanshhggge jshsd

select * from user_detail where fistname like %hh%
select * from user_detail where CONTAINS(fistname,'hh',1) > 0

а также в чем разница?

CONTAINS(fistname,'hh',1) > 0 а также CONTAINS(fistname,'%hh%',1) > 0

1 ответ

Решение

Вы можете обратиться к этому вопросу здесь:

Разница в критериях поиска между Like и Contains() в Oracle

Ваш синтаксис для использования CONTAINS() работает правильно в первом примере

Ваш второй вопрос, в чем разница между:

CONTAINS(fistname,'hh',1) > 0 and CONTAINS(fistname,'%hh%',1) > 0

Разница первая CONTAINS(fistname,'hh',1) > 0 ищет независимое слово "чч"

Во-вторых CONTAINS(fistname,'%hh%',1) > 0он ищет любой экземпляр строки "hh" независимо от того, что находится до или после него.

Другие вопросы по тегам