Creo que puede resolver esto fácilmente creando un ÍNDICE DE TEXTO COMPLETO en su KWD
columna. Luego puede usar CONTAINS
query para buscar frases. El índice FULL TEXT se encarga de la puntuación e ignora las comas automáticamente.
-- 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"')
Para buscar varias palabras (como el mobile phone
en su caso) utilice las frases citadas:
SELECT AS_ID FROM tbl_main
WHERE CONTAINS(KWD, '"woman" AND "mobile phone"')
Como se comenta a continuación, las frases citadas son importantes en todas las búsquedas para evitar malas búsquedas en el caso de, p. cuando un término de búsqueda es "tableta funcionando" y el valor KWD es woman,girl,Digital Tablet,working,sitting,online
Hay un caso especial para un solo -
término de búsqueda. NOT no se puede utilizar como primer término en CONTAINS. Por lo tanto, se debe utilizar la consulta como esta:
-- If search text is = -Working the query will be
SELECT AS_ID FROM tbl_main
WHERE NOT CONTAINS(KWD, '"working"')