T-SQL Использование предиката CONTAINS с дефисом - PullRequest
4 голосов
/ 03 августа 2011

Представьте себе таблицу (table1) с одним столбцом (column1) и одной записью, значение которой является «пролонгированным».Затем используйте следующий запрос SQL, и вы не получите никаких записей.

select * from table1 where contains(column1, ' "roll-over" ')

Есть ли способ избежать дефиса в тексте поиска?До сих пор я не был успешным, пытаясь это (я пробовал все приведенные ниже безуспешно).

select * from table1 where contains(column1, ' "roll\-over" ')
select * from table1 where contains(column1, ' "roll!-over" ')
select * from table1 where contains(column1, ' "roll[-]over" ')

Также обратите внимание, что использование ключевого слова LIKE для моего приложения невозможно, поскольку я использую преимущества индексации полнотекстового поиска.

1 Ответ

4 голосов
/ 03 августа 2011

Похоже, вы не сможете этого сделать.Прочитайте эту статью:

https://support.microsoft.com/en-us/help/200043/prb-dashes---ignored-in-search-with-sql-full-text-and-msidxs-queries

Они предлагают искать только буквенно-цифровые значения (lame) или использовать предложение LIKE (не вариант для вас).

...