2011-11-14 30 views
0

也许这是一个愚蠢的问题。像SQL自由文本搜索

如何在SQL实现“LIKE‘%测试%’使用自由文本?

我想包含和自由文本等同于” LIKE“%测试%”,加上一个GET的语法检查和性能。

在我的情况,我有:

select * from ServiceOfferResultIndexed where contains(FirstName,'test') 

这给了我18

rows.select * from ServiceOfferResultIndexed where FirstName like '%test%' 

,给了我229行。

感谢您的帮助。

该数据库是MS SQL 2005.我认为它支持*作为后缀。它接吻,如果我提供''*测试''*被认为是一个单词而不是通配符。测试成为以下单词。

包含将仅支持“test *”,其中它会查找以'test'开头并跟随任何其他字符的所有短语。

+0

您使用的数据库是? – Oded

回答

2

这些是两个不同的表达式。 LIKE '%test%'将会找到这四个字符在一起的任何行(例如,证言或参赛者),其中contains将在单词上匹配。

我不知道你使用的是什么全文引擎,但通常支持通配符。例如,如果使用contains(firstame, '*test*'),会发生什么情况?您必须在自由文本搜索中查阅您的特定dbms文档的通配符。

相关问题