Myślę, że możesz łatwo rozwiązać ten problem, tworząc PEŁNOTEKSTOWY INDEKS na swoim KWD
kolumna. Następnie możesz użyć ZAWIERA
zapytanie do wyszukiwania fraz. Indeks PEŁNOTEKSTOWY dba o interpunkcję i automatycznie ignoruje przecinki.
-- If search text is = Man,Businessman then the query will be
SELECT AS_ID FROM tbl_main
WHERE CONTAINS(KWD, '"Man" AND "Businessman"')
-- If search text is = Man,-Businessman then the query will be
SELECT AS_ID FROM tbl_main
WHERE CONTAINS(KWD, '"Man" AND NOT "Businessman"')
-- If search text is = woman,girl,-Working the query will be
SELECT AS_ID FROM tbl_main
WHERE CONTAINS(KWD, '"woman" AND "girl" AND NOT "working"')
Aby wyszukać wiele słów (np. mobile phone
w Twoim przypadku) użyj cytowanych fraz:
SELECT AS_ID FROM tbl_main
WHERE CONTAINS(KWD, '"woman" AND "mobile phone"')
Jak skomentowano poniżej, cytowane frazy są ważne we wszystkich wyszukiwaniach, aby uniknąć błędnych wyszukiwań w przypadku np. gdy wyszukiwane hasło to „tablet działający”, a wartość KWD to woman,girl,Digital Tablet,working,sitting,online
Istnieje specjalny przypadek dla pojedynczego -
szukany termin. NOT nie może być użyty jako pierwszy termin w CONTAINS. Dlatego należy użyć takiego zapytania:
-- If search text is = -Working the query will be
SELECT AS_ID FROM tbl_main
WHERE NOT CONTAINS(KWD, '"working"')