如果我将使用FTS或纯SQL查询(LIKE),我只会感到困惑。我试图在一张桌子上使用FTS,但我认为当搜索值不是一个完整的单词时它是不准确的。这是我的桌子。
Description, POnumber,PRNumber,InvoiceNumber,CreatedBy,UpdatedBy
Test user PO1 PR1 Inv 1 userm userm
Test2 PO2 PR2 Inv 2 userm userm
Test3 PO3 PR3 Inv 3 userm userm
SELECT description,ponumber,prnumber,invoicenumber,createdby,updatedby
FROM MSTR_FILE
WHERE FREETEXT((createdby,updatedby,ponumber,invoicenumber,prnumber,description),'user')
结果是第一行,但当值为'userm'时,所有行都被选中。我想要的结果是将显示包含userm的所有行。
答案 0 :(得分:0)
你可以像这样使用OR ......
SELECT description,ponumber,prnumber,invoicenumber,createdby,updatedby
FROM MSTR_FILE
where description like '%'+'user'+'%' OR
ponumber like '%'+'user'+'%' OR
prnumber like '%'+'user'+'%' OR
invoicenumber like '%'+'user'+'%' OR
createdby like '%'+'user'+'%' OR
updatedby like '%'+'user'+'%'
答案 1 :(得分:0)
我已经找到了解决方案,就像@aks建议我已经尝试过但我已经加入了双引号,以便它能正确读取“*”符号,
这是启发我的链接。 http://msdn.microsoft.com/en-us/library/ms187787.aspx
SELECT description,ponumber,prnumber,invoicenumber,createdby,updatedby 来自MSTR_FILE WHERE CONTAINS(createdby,'“user *”');