也许这是一个愚蠢的问题。
我如何实现在sql"像'%测试%'使用自由文本?
我认为包含和自由文本相当于"喜欢%测试%",加上一个get的语法检查,和性能。
在我的例子中,我有:
select * from ServiceOfferResultIndexed where contains(FirstName,'test')
等于18
rows.select * from ServiceOfferResultIndexed where FirstName like '%test%'
得到229行。
谢谢你的帮助。
数据库为MS SQL 2005。我认为它支持* as后缀。它似乎,如果我提供"*测试",*被认为是一个词,而不是一个通配符。Test变成了后面的单词。
Contains将只支持"test *",它查找所有以'test'开头的短语,后面跟着任何其他字符。
这是两种不同的表达。LIKE '%test%'
将找到这四个字符在一起的任何一行(例如,证言,或选手),contains
将匹配单词。
我不知道你在使用什么全文引擎,但通常通配符是支持的。例如,如果使用where contains(firstame, '*test*')
会发生什么?