検索用語を角カッコで囲むためのTSQL構文

私は、 []と] はTSQL(SQlserver 2005が重要な場合)の LIKE ストアドプロシージャの検索語をエスケープするにはどうすればよいですか?

SELECT * FROM Table WHERE Column LIKE '%['+ @searchedTerm +']'

だから、上記のような検索をするときに有効なのは何ですか?

1

3 答え

次のように(閉じていない)カッコをエスケープする必要があります:

LIKE '%[[]' + @searchedTerm + ']'

LIKEのMSDNページには、ワイルドカード文字をリテラルとして使用する "

編集後、コメント後

  • LIKE '[[]cap]%' searches for a name containing the string [cap]
  • LIKE '[wel]%' searches for a name containing one of the letters w, e or l
4
追加された
うわー、それはあなたです。あなたはどうしますか? btw検索用語に列名が含まれている場合は、 [] に囲んでください。だから私はこれを試してみましたが、製品名からLIKE '[[] cap'% 'コード>はうまくいくように思えます
追加された 著者 Deeptechtons,
答えとして受け入れられましたが、どうやってsearchtermの列名をエスケープしますか?
追加された 著者 Deeptechtons,
@Deptechtons:更新された答え。 LIKEの使用方法に関するMSDNの記事をお読みください
追加された 著者 gbn,
その可能性のある列名が常にかっこで囲まれているとは限りません
追加された 著者 gbn,

これを試して:

DECLARE @searchedTerm as varchar(50); 
SET @searchedTerm = 'TEST VALUE'

SELECT * FROM Table WHERE Column LIKE '%[[]' + @searchedTerm +']'
2
追加された
あなたのものはGbnのちょっとした例ですので、私は投票ではなく答えにしなければなりません
追加された 著者 Deeptechtons,

これを試して:

SELECT * FROM表WHERE '%/ [' + @searchedTerm + ']' {エスケープ '/'}

0
追加された
@Deptechtons:あなたは少なくとも私の答えを試してみましたか?
追加された 著者 naresh,