2011-08-25 17 views

答えて

210

使用ブラケット。だから、これはESCAPEよりも簡単かつ最もRDBMS

+2

に共通している75%のため

WHERE MyCol LIKE '%75[%]%' 

を見ても、など、あなたが、そのようなユーザー関数などの他の構成要素に連結をパーセント記号をエスケープする必要はありません –

+3

[カーディナリティの見積もり(と実行計画も)をより良くすることができます](http://stackoverflow.com/a/18696341/73226) –

+1

また、アンダースコアのワイルドカード文字もエスケープできます: '[_]'。あなたはどのように開いた角括弧を逃れていますか?このように: '[[]'。 http://www.sqlserver2000.databases.aspfaq.com/how-do-i-search-for-special-characters-e-g-in-sql-server.html –

39

LIKEESCAPEというキーワードを使用できます。文字列内の既存の%記号のそれぞれに目的の文字(「!」など)を付加してから、ESCAPE '!'(または選択した文字)をクエリの末尾に追加します。例えば

SELECT * 
FROM prices 
WHERE discount LIKE '%80!% off%' 
ESCAPE '!' 

これは、データベースの検索ではなく80(ワイルドカード)にある文字列の実際の一環として、80%を扱うようになります。

MSDN Docs for LIKE

11
WHERE column_name LIKE '%save 50[%] off!%' 
関連する問題