Ich denke, Sie können dies leicht lösen, indem Sie einen VOLLTEXTINDEX auf Ihrem KWD
erstellen Säule. Dann können Sie den CONTAINS
verwenden Abfrage, um nach Phrasen zu suchen. Der FULL TEXT-Index kümmert sich um die Interpunktion und ignoriert die Kommas automatisch.
-- 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"')
Um nach mehreren Wörtern zu suchen (wie mobile phone
in Ihrem Fall) verwenden Sie die zitierten Ausdrücke:
SELECT AS_ID FROM tbl_main
WHERE CONTAINS(KWD, '"woman" AND "mobile phone"')
Wie unten kommentiert, sind die zitierten Phrasen bei allen Suchen wichtig, um schlechte Suchen im Fall von z. wenn ein Suchbegriff "Tablet arbeitet" und der KWD-Wert woman,girl,Digital Tablet,working,sitting,online
ist
Es gibt einen Sonderfall für einen einzelnen -
Suchbegriff. Das NOT kann nicht als erster Begriff in CONTAINS verwendet werden. Daher sollte die Abfrage wie folgt verwendet werden:
-- If search text is = -Working the query will be
SELECT AS_ID FROM tbl_main
WHERE NOT CONTAINS(KWD, '"working"')