2011-04-01 50 views
0

考虑具有全文索引的列名称MyCol。我们想要找到那些值为|foo|的行。在全文索引列中搜索管道字符

想这一点,但没有找到那些正好|foo|

SELECT * FROM MyTable WHERE CONTAINS(MyCol,'"|foo|"') 

它与foo返回任何东西。看起来好像管道被忽视为分隔符。

我该如何逃避或确保找到确切的字符串|foo|

回答

2

转义:

SELECT * FROM MyTable WHERE CONTAINS(MyCol,'[|]foo[|]') 

我觉得这个工作太:

SELECT * FROM MyTable WHERE CONTAINS(MyCol,'||foo||') ESCAPE '|' 

哎呀,这是全文搜索。根据这个问题/答案,没有办法!

sql-server-full-text-search-escape-characters