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

SQLパラメーターを使用したSQLLIKEステートメント内の特殊文字のエスケープ

    2つのオプションがあります:

    • それらを[で囲みます および] 。だから:

      where pattern like '[%]'
      

      パーセント文字を検索します。エスケープする文字の完全なリスト-'_', '%', '[', ']' 対応する置換を含む'[_]', '[%]', '[[]', '[]]' 。サンプルコードは、エスケープ文字のエスケープが機能しない–SQLLIKE演算子

    • バッククォートなど、文字列に含まれる可能性が低いエスケープ文字を使用します:

      where pattern like '`%' escape '`'
      

      (MSDNの構文を参照してください- LIKE(Transact-SQL) 。)

    どちらの場合も、アプリケーション層で置換を行うことをお勧めしますが、本当に必要な場合はSQLで置換することもできます。

    where pattern like replace(@pattern, '%', '[%]')
    

    また、エンドユーザーにワイルドカードへのアクセスを許可することは、ユーザーインターフェイスの観点からは良いことかもしれません。

    注:さらにいくつかの特殊文字があります'-' および'^' LIKEクエリでは、ただし、すでに'['をエスケープしている場合は、エスケープする必要はありません。 および']'



    1. PHPとMySQL:最新の日付で注文し、10を制限します

    2. グループが繰り返されるグループの行番号をインクリメントします

    3. MYSQL:Where句があいまいです

    4. SQL:累積列と行全体の合計