To co staram się osiągnąć w swej najprostszej postaci:Wiele instrukcji jak w 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%')
Próbuję to zrobić w UDF, która przyjmuje parametr oddzielonych przecinkami wszystkich poszukiwania warunki.
próbowałem podział tego parametru w tabeli tymczasowej i próbuje łączyć, jak to:
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)
Ale to nie zwróci to, co chcę - zwraca wszystkie rekordy, gdzie nazwa lub SKU mecze jednej z wyszukiwane hasła. Potrzebuję go zwrócić jak pierwsze zapytanie, gdzie Nazwa lub SKU pasuje do wszystkich wyszukiwanych terminów (myślę, że to ma sens).
Byłbym bardzo wdzięczny za pchnięcie we właściwym kierunku - daj mi znać, jeśli chcesz, bym był bardziej konkretny.
Uwaga: wyszukiwanie pełnotekstowe nie jest obecnie możliwe.
Dzięki!
Jeśli chcesz "dopasować wszystkie wyszukiwane hasła", nie oznacza to, że możesz mieć tylko dwa (2) wyszukiwane hasła, ponieważ masz do wyboru tylko dwie kolumny? – RBarryYoung
liczba wyszukiwanych słów może być nieskończona. na przykład mogę wyszukać "biały plastikowy kubek". Tak więc dla każdego okresu nazwa produktu lub SKU musi być zgodna. Mam nadzieję, że ma to sens. – seanxe
To nie ma sensu. Jak tylko dwie kolumny pasowały *** *** wszystkich trzech odrębnych kategoriach wyszukiwania? To nie jest możliwe, że masz sposób opisał go. – RBarryYoung