想象一个表 (table1) 有一个列 (column1) 和一个值为 'roll-over' 的记录。然后使用以下 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 关键字,因为我正在利用全文搜索索引。
最佳答案
看起来您可能无法做到这一点。请阅读这篇文章:
https://support.microsoft.com/en-us/help/200043/prb-dashes---ignored-in-search-with-sql-full-text-and-msidxs-queries
他们建议只搜索字母数字值(蹩脚)或使用 LIKE 子句(不适合您)。
关于sql - 使用带连字符的 CONTAINS 谓词的 T-SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6930726/