想象一个包含一列(column1)的表(table1)和一个值为'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关键字,因为我正在利用全文搜索索引。
答案 0 :(得分:4)
看起来你可能无法做到这一点。请阅读本文:
他们建议只搜索字母数字值(跛脚)或使用LIKE子句(不是你的选项)。
答案 1 :(得分:0)
部分解决方案:您可以通过使用charindex
函数测试字符串是否包含字符来强制查询返回包含连字符(或任何字符)的记录,例如:
select * from table1 where contains(column1, ' "roll-over" ')
and charindex('-', column1) > 0