CONTAINS sql函数与下划线不匹配

时间:2010-01-13 09:41:11

标签: sql contains

我有一些表'TableName',如Id,Name:

1 | something
2 | _something
3 | something like that
4 | some_thing
5 | ...

我想从这个表中获取名称包含'some'的所有行。 我有两种方式:

SELECT * FROM TableName WHERE Name like '%some%'

结果是表格:

1 | something
2 | _something
3 | something like that
4 | some_thing

但是如果我使用CONTAINS功能

SELECT * FROM TableName WHERE CONTAINS(Name,'"*some*"')

我只得到

1 | something
3 | something like that

如何使CONTAINS功能正常工作?

3 个答案:

答案 0 :(得分:2)

我最后一次查看(当然是SQL Server 2000)CONTAINS在单词的开头不支持通配符匹配,仅在结尾处。此外,您可能需要检查噪声文件以查看是否忽略了“_”字符。

另见

How do you get leading wildcard full-text searches to work in SQL Server?

答案 1 :(得分:0)

http://doc.ddart.net/mssql/sql70/ca-co_15.htm

如果您阅读本文,您将看到*表示前缀,这意味着该单词必须以此开头,但就像单词包含关键短语一样。

最诚挚的问候, 约尔丹

答案 2 :(得分:0)

试试这个:

SELECT * FROM TableName WHERE CONTAINS(Name,'some')