我有一些表'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功能正常工作?
答案 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')