sql >> Databáze >  >> RDS >> Sqlserver

SQL Přizpůsobené vyhledávání se speciálními znaky

Myslím, že to můžete snadno vyřešit vytvořením FULL TEXTOVÉHO INDEXU na vašem KWD sloupec. Pak můžete použít CONTAINS dotaz pro vyhledávání frází. FULL TEXT index se stará o interpunkci a automaticky ignoruje čárky.

-- 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"')

Chcete-li vyhledat více slov (např. mobile phone ve vašem případě) použijte citované fráze:

SELECT AS_ID FROM tbl_main
WHERE CONTAINS(KWD, '"woman" AND "mobile phone"')

Jak je uvedeno níže, citované fráze jsou důležité při všech vyhledáváních, aby se předešlo špatným vyhledáváním v případě např. když je hledaný výraz "tablet working" a hodnota KWD je woman,girl,Digital Tablet,working,sitting,online

Pro jeden - existuje zvláštní případ hledaný výraz. NOT nelze použít jako první termín v CONTAINS. Proto by měl být použit dotaz jako tento:

-- If search text is = -Working  the query will be
SELECT AS_ID FROM tbl_main
WHERE NOT CONTAINS(KWD, '"working"')


  1. Zachycování varování MySQL v Pythonu

  2. Výjimka PDO „nelze najít ovladač“

  3. SQL:Máte chybu v syntaxi SQL; správnou syntaxi k použití naleznete v příručce, která odpovídá verzi vašeho serveru MySQL

  4. Získejte maximální povolenou délku ve sloupci, mysql