SQL Server 2012查询字符串包含斜杠

时间:2015-05-19 23:54:17

标签: sql sql-server-2012 full-text-search

我已经浏览了整个互联网和stackoverflow以获得这个问题的答案,但似乎无法找到任何可以解答问题的内容,所以这里就是......

是否需要对正斜杠(/)执行哪些特殊操作才能将它们包含在搜索查询中?

场景:我有一个查询,其中包含要搜索的字符串,其中包含正斜杠。搜索项是特定项的维度,因此它必须包含斜杠以指示分数。我试图用反斜杠逃避它,但这不起作用。查询如下:

SELECT * FROM ITEMDATA WHERE CONTAINS(dimensions, '3/8')

此查询返回0结果。

要搜索的数据示例:

  

•音高:3/8"   •量表:.050

我还需要在搜索词组中使用双引号来指定单位,但这是另一个问题。

有什么建议吗?

3 个答案:

答案 0 :(得分:0)

如下所示,您可以使用" /"在LIKE表达式中没有任何技巧:

create table foo(a int, b varchar(32))
go

insert into foo select 1, 'for 3/8 inch';
go

select * from foo where b like '%3/8%';
go

这将导致找到单行。

答案 1 :(得分:0)

如果我们需要使用特定字符串在sql表列中搜索,我们需要使用LIKE命令,以便我们可以以各种方式使用它。 1.返回具有维度列值的结果包含字符串3/8

'SELECT * FROM ITEMDATA WHERE dimensions LIKE '%3/8%';`
  1. 返回维度列值严格以字符串3/8
  2. 开头的结果

    SELECT * FROM ITEMDATA WHERE dimensions LIKE '3/8%';

    1. 返回维度列值严格以字符串3/8结尾的结果。
    2. SELECT * FROM ITEMDATA WHERE dimensions LIKE '3/8%';

答案 2 :(得分:0)

为全文禁用STOPLIST:

ALTER FULLTEXT INDEX ON table SET STOPLIST OFF

并尝试

SELECT * FROM ITEMDATA WHERE CONTAINS (dimensions, '"3/8*"')