也许这是一个愚蠢的问题。
如何使用自由文本在sql“中实现'%'%'?
我认为包含和自由文本相当于“喜欢'%test%',加上一次获取的语法检查和性能。
就我而言,我有:
select * from ServiceOfferResultIndexed where contains(FirstName,'test')
给了我18
rows.select * from ServiceOfferResultIndexed where FirstName like '%test%'
给了我229行。
感谢您的帮助。
数据库,是MS SQL 2005.我认为它确实支持*作为后缀。它接缝,如果我提供''* test''*被认为是一个单词而不是外卡。测试成为以下单词。
包含只支持“test *”,它会查找以“test”开头的所有短语,后跟任何其他字符。
答案 0 :(得分:2)
这是两种不同的表达方式。 LIKE '%test%'
会找到这四个字符在一起的任何行(例如推荐或竞争者),其中contains
将匹配单词。
我不知道您使用的是什么全文引擎,但通常支持通配符。例如,如果您使用contains(firstame, '*test*')
的位置会发生什么?您必须在自由文本搜索中查阅特定的dbms文档以获取通配符。