Jeg tror, du nemt kan løse dette ved at oprette et FULD TEKSTINDEKS på din KWD
kolonne. Så kan du bruge CONTAINS
forespørgsel for at søge efter sætninger. FULD TEKST-indekset tager sig af tegnsætningen og ignorerer automatisk kommaerne.
-- 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"')
For at søge i flere ord (såsom mobile phone
i dit tilfælde) brug de citerede sætninger:
SELECT AS_ID FROM tbl_main
WHERE CONTAINS(KWD, '"woman" AND "mobile phone"')
Som kommenteret nedenfor er de citerede sætninger vigtige i alle søgninger for at undgå dårlige søgninger i tilfælde af f.eks. når et søgeudtryk er "tablet fungerer", og KWD-værdien er woman,girl,Digital Tablet,working,sitting,online
Der er et særligt tilfælde for en enkelt -
søgeterm. NOT kan ikke bruges som det første udtryk i CONTAINS. Derfor skal forespørgslen som denne bruges:
-- If search text is = -Working the query will be
SELECT AS_ID FROM tbl_main
WHERE NOT CONTAINS(KWD, '"working"')