Jag tror att du enkelt kan lösa detta genom att skapa ett FULLTEXTINDEX på din KWD
kolumn. Då kan du använda INNEHÅLLER
fråga för att söka efter fraser. FULLTEXT-indexet tar hand om skiljetecken och ignorerar kommatecken automatiskt.
-- 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"')
För att söka efter flera ord (som mobile phone
). i ditt fall) använd de citerade fraserna:
SELECT AS_ID FROM tbl_main
WHERE CONTAINS(KWD, '"woman" AND "mobile phone"')
Som kommenteras nedan är de citerade fraserna viktiga i alla sökningar för att undvika dåliga sökningar vid t.ex. när en sökterm är "surfplatta fungerar" och KWD-värdet är woman,girl,Digital Tablet,working,sitting,online
Det finns ett specialfall för en enda -
sökterm. NOT kan inte användas som den första termen i CONTAINS. Därför bör frågan som denna användas:
-- If search text is = -Working the query will be
SELECT AS_ID FROM tbl_main
WHERE NOT CONTAINS(KWD, '"working"')