0
私はフルテキストカタログのセットアップを持っています。それには、ユニークなキー数が117あり、19項目あります。テーブルには19行しかありません。私のContainsTableクエリが機能しません - 助けてください:
テーブルにはClientGuidというNVARCHAR(50)フィールドがあります。最後に奇妙なテキストのguidです。例えば
..
- 8b6ef4a504dd1a57f079180e7f6eb4a0( - )
- 8b6ef4a504dd1a57f079180e7f6eb4a0(OK)
(といいえ、私はそのテキストフィールドのデータを定義されていなかった - 私たちはからそれを調達していますサードパーティのAPI
これは私のSQLとクエリです。私はクエリを実行すると、ゼロ結果を返します:(
ALTER FUNCTION [dbo].[Foo_HiJonSkeet]
(
@ClientGuid NVARCHAR(50)
)
RETURNS TABLE
AS
RETURN
(
SELECT KEY_TBL.[Key] as LogEntryId,
KEY_TBL.RANK as Relevance
FROM CONTAINSTABLE(LogEntries, ClientGuid, @ClientGuid) AS KEY_TBL
)
SELECT * FROM Foo_HiJonSkeet('8b')
二重引用符と元の検索語の後にアスタリスクを追加
SELECT * FROM Foo_HiJonSkeet('"8b*"')
: サーバーは、SQL Server 2008
興味のある方は、なぜCONTAINSではなくLIKEですか? –
@ Pure.Krome、いくつかの言葉では、 'LIKE( '8b *')式は定義されているならば、この列のインデックスを使うことができます。 'LIKE'述語が文字パターンだけに作用するにもかかわらず、あなたの例はそのような場合です。また、「LIKE」もここでは直感的です。 – Alex