Đây là những gì tôi đang cố gắng để đạt được trong đó là hình thức đơn giản nhất:Nhiều báo cáo NHƯ trong TSQL
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%')
Tôi đang cố gắng để làm điều này trong một UDF, mà chấp nhận một dấu phẩy thông số tách ra của tất cả các tìm kiếm điều kiện.
tôi đã cố gắng tách rằng tham số vào một bảng tạm thời và cố gắng tham gia, như thế này:
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)
Nhưng điều đó không trả lại những gì tôi muốn - nó trả về bất cứ hồ sơ có Tên hoặc SKU phù hợp với một trong hai các cụm từ tìm kiếm. Tôi cần nó trở lại giống như truy vấn đầu tiên, trong đó Tên hoặc SKU khớp với tất cả các cụm từ tìm kiếm (tôi nghĩ điều đó có ý nghĩa).
Sẽ được đánh giá ồ ạt về việc đẩy đúng hướng - hãy cho tôi biết nếu bạn cần tôi cụ thể hơn.
Lưu ý: tìm kiếm toàn văn không phải là một lựa chọn khả thi tại thời điểm này.
Cảm ơn!
Nếu bạn cần "khớp tất cả cụm từ tìm kiếm", điều đó có nghĩa là bạn chỉ có thể có hai (2) cụm từ tìm kiếm, vì bạn chỉ có hai cột để so khớp? – RBarryYoung
số lượng cụm từ tìm kiếm có thể là vô hạn. ví dụ tôi có thể tìm kiếm "cốc nhựa màu trắng". Vì vậy, đối với mỗi thuật ngữ, ProductName hoặc SKU phải khớp nhau. Hy vọng rằng có ý nghĩa. – seanxe
Nó không có ý nghĩa. Làm cách nào để chỉ có hai cột khớp với *** tất cả *** trong ba cụm từ tìm kiếm riêng biệt? Nó không thể theo cách mà bạn đã mô tả nó. – RBarryYoung