在我的應用程式中,客戶可以選擇多個詞從他們的搜索中排除。這些詞針對 FullTextSearch 欄位運行。
我想知道是否有一種方法可以讓 NOT 包含與全文搜索的完全匹配。
例如,該欄位包含
Record 1 - `Oranges, Apples, BloodOranges`
Record 2 - `Oranges`
Record 3 - `BloodOranges`
Record 4 - `Apples`
如果客戶過濾橙子,它將過濾橙子和血橙。我希望它回傳記錄 3,4。
SELECT *
FROM Contacts
WHERE Contains (taglist, 'Oranges')
uj5u.com熱心網友回復:
在 SQL-Server 中,您可以使用CONTAINSTABLE
例如:
這將回傳包含確切短語“Oranges”的聯系人
SELECT *, k.[Rank]
FROM Contacts c
INNER JOIN CONTAINSTABLE([dbo].[Contacts], taglist, N'"Oranges"') as [k]
ON c.Id = k.[Key]
對于你想要的,你可以這樣寫:
;With CTE AS
(
SELECT c.Id
FROM Contacts c
INNER JOIN CONTAINSTABLE([dbo].[Contacts], taglist, N'"Oranges"') as [k]
ON c.Id = k.[Key]
)
Select * From Contacts CC
Where CC.Id not in (Select Id From CTE)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/346156.html
標籤:sql sql-server 短信
