2014-02-04 3 views
4

Я использую функцию SQL SQL Express SQL Contains для выбора данных. Однако, когда я выбрал данные с помощью оператора LIKE, я понял, что в функции Содержит несколько строк.SQL: LIKE и содержит - Различные результаты

Восстановленные индексы, но это не помогло.

Sql: brs.SearchText like '%aprilis%' и CONTAINS(brs.SearchText, '*aprilis*')

contains функция пропущенных строк, как:

22-28.aprīlis 
[1.aprīlis] 
Sīraprīlis 

PS. Если я ищу непосредственно CONTAINS(brs.SearchText, '*22-28.aprīlis*'), то он найдет их

+0

Поскольку текст содержит U + 012B LATIN SMALL LETTER I WITH MACRON, а не U + 0069 LATIN SMALL LETTER I, разумно предположить, что одна из функций/операторов игнорирует акценты, а другая - нет. –

ответ

8

contains - это функциональность, основанная на полном текстовом индексе. Он поддерживает слова, фразы и префиксные совпадения слов, но не суффиксные совпадения. Таким образом, вы можете сопоставлять слова, начинающиеся с 'aprilis', но не слова, которые заканчиваются им или которые содержат его произвольно посередине. Вы можете использовать тезаурус для этих условий.

Подробнее об этом в разделе documentation.

Смежные вопросы