Проблема полнотекстового поиска SQL - PullRequest
0 голосов
/ 09 марта 2011

Что я делаю не так с моим полнотекстовым поиском? Если этот код

Select UserID, UserName
From Users
Where Contains([UserName], '%Jack%')

Я получаю джек пользователя обратно, но если я сделаю это

Select UserID, UserName
From Users
Where Contains([UserName], '%Ja%')

Я ничего не понимаю, что я делаю не так?

Ответы [ 2 ]

3 голосов
/ 10 марта 2011

Вы смешиваете синтаксис LIKE с CONTAINS.Имейте в виду, что полнотекстовый поиск основан на словах, в то время как аналогичен поиску шаблона символов в строке.

0 голосов
/ 14 января 2016

Contains([UserName], '"Ja*"') - Синтаксис для поиска PREFIX. Будет соответствовать "Джек", но не "Аякс"

Вы не можете выполнять поиск POSTFIX с помощью полнотекстового поиска. Если бы вы попробовали:

Contains([UserName], '"*Ja*"') -- wrapped in *

Это фактически будет выполнять поиск ТОЛЬКО в PREFIX, он удалит все специальные символы, которые не соответствуют синтаксису, то есть первый * будет удален, а затем запущен. Если вам нужен открытый поиск, вам нужно использовать %% still, чтобы найти внутренние части или слова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...