sql >> データベース >  >> RDS >> Sqlserver

SQL特殊文字を使用したカスタマイズされた検索

    KWDにフルテキストインデックスを作成することで、これを簡単に解決できると思います。 桁。次に、CONTAINS を使用できます。 フレーズを検索するためのクエリ。 FULL TEXTインデックスは句読点を処理し、コンマを自動的に無視します。

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

    複数の単語を検索するには(mobile phoneなど) あなたの場合)引用されたフレーズを使用してください:

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

    以下にコメントされているように、引用されたフレーズは、すべての検索で重要です。検索語が「タブレット作業中」で、KWD値がwoman,girl,Digital Tablet,working,sitting,onlineの場合

    単一の-には特殊なケースがあります 検索語。 NOTは、CONTAINSの最初の用語として使用することはできません。したがって、次のようなクエリを使用する必要があります:

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


    1. PostgreSQL-IN句のパラメータの最大数?

    2. OracleLoaderを使用してHBaseデータをOracleテーブルにインポートする

    3. 長い文字列のOracleCLOBまたはBLOBを挿入する方法

    4. パフォーマンスが低下し始める前に、MySQLデータベースはどのくらい大きくなることができますか