Penso che tu possa risolvere facilmente questo problema creando un INDICE DI TESTO COMPLETO sul tuo KWD
colonna. Quindi puoi utilizzare CONTAINS
query per cercare le frasi. L'indice FULL TEXT si occupa della punteggiatura e ignora automaticamente le virgole.
-- 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"')
Per cercare più parole (come il mobile phone
nel tuo caso) usa le frasi citate:
SELECT AS_ID FROM tbl_main
WHERE CONTAINS(KWD, '"woman" AND "mobile phone"')
Come commentato di seguito, le frasi citate sono importanti in tutte le ricerche per evitare ricerche errate nel caso ad es. quando un termine di ricerca è "tablet funzionante" e il valore KWD è woman,girl,Digital Tablet,working,sitting,online
Esiste un caso speciale per un singolo -
termine di ricerca. Il NOT non può essere utilizzato come primo termine nel CONTAINS. Pertanto, la query come questa dovrebbe essere utilizzata:
-- If search text is = -Working the query will be
SELECT AS_ID FROM tbl_main
WHERE NOT CONTAINS(KWD, '"working"')