Я считаю, что ваш запрос CONTAINS
соответствует 'narei sia', потому что шаблон '% a% e%' соответствует слову 'narei'.Это не соответствует «narsi reddy», потому что ни одно слово, взятое по отдельности, не соответствует шаблону.
Я предполагаю, что вы хотите использовать CONTAINS
вместо LIKE
по соображениям производительности.Я ни в коем случае не эксперт по CONTAINS
выражениям запросов, но я не вижу простого способа выполнить именно тот поиск, который вам нужен, поскольку вы ищете буквы, которые могут быть в одном и том же слове или в разных словах, нодолжно происходить в заданном порядке.Я думаю, что может быть лучше сделать комбинацию из двух методов:
WHERE CONTAINS(name,'%a% AND %e%') > 0
AND name LIKE '%a%e%'
Я думаю, что это позволило бы использовать текстовый индекс для поиска подходящих совпадений (все, что имеет хотя бы одно слово, содержащее 'aи хотя бы одно слово, содержащее «е»).Затем они будут отфильтрованы по условию LIKE
, обеспечивающему требование, чтобы 'a' предшествовало 'e' в строке.