これは、最も単純な形式で達成しようとしているものです。
SELECT
p.ProductId,
p.ProductName,
p.SKU
FROM tbl_Product p
WHERE (p.ProductName LIKE '%white%' OR p.SKU LIKE '%white%')
AND (p.ProductName LIKE '%cup%' OR p.SKU LIKE '%cup%')
すべての検索語のコンマ区切りのパラメーターを受け入れる UDF でこれを実行しようとしています。
そのパラメーターを一時テーブルに分割して、次のように結合しようとしました。
DECLARE @SearchText nvarchar(1000) SELECT @SearchText='white,cup'
DECLARE @SearchTerms TABLE (String nvarchar(200))
INSERT INTO @SearchTerms (String)
SELECT '%' + String + '%' FROM dbo.CsvSplitString(@SearchText)
SELECT
p.ProductId,
p.ProductName,
p.SKU
FROM tbl_Product p
JOIN @SearchTerms s ON (p.ProductName LIKE s.String OR p.SKU LIKE s.String)
しかし、それは私が望むものを返しません.名前またはSKUが検索用語のいずれかに一致するレコードを返します. 名前または SKU がすべての検索用語に一致する最初のクエリのように返す必要があります (これは理にかなっていると思います)。
正しい方向へのプッシュに大いに感謝します-より具体的にする必要がある場合はお知らせください.
注: 現時点では、全文検索は実行可能なオプションではありません。
ありがとう!