目次

LIKE 演算子の条件文字列内での文字のエスケープ - SQL Server

LIKE 演算子の条件文字列内で文字をエスケープする方法を紹介します。

概要

LIKE 演算子の条件では、ワイルドカード文字として % _ が利用でき、 パターン一致のグループを表現する文字として、[ ]、否定表現として^ の文字が利用できます。
一方で %, _, [, ], ^ の文字を一致の条件として文字に利用したい場合があります。
これらの文字を利用する場合は、文字をエスケープ酢する必要があります。

書式

次の書式を利用します。
LIKE '(条件の文字列)' {escape'(エスケープ文字)'} 

エスケープ文字に\を指定し、以下の書式を利用した場合 %の文字は\%[ の文字は \[ と表現できます。
LIKE '(条件の文字列)' {escape'¥'} 

記述例

nameフィールドの値が Name:[1](任意の文字列) のレコードを検索する例です。
SELECT * FROM MyTable WHERE name LIKE 'Name:\[1\]%' {escape'\'} 

以下のテーブルを用意します。
ProductsE テーブル
id category name price
1 [Cookie] ぺんぎんクッキー 380
2 [Chocolate] らくだチョコレート 240
3 [Cookie] かるがもサブレ 160
4 [Ice] しろくまアイス 280
5 [Chocolate] ふくろう生チョコ 520
6 [Ice] ぺんぎんシャーベット 140

次のSQL文を実行します。
categoryの値が [C(任意の文字列)] の項目を検索します。
  SELECT * FROM ProductsE WHERE category LIKE '\[C%\]%' {escape'\'} 

上記のSQL文を実行すると以下の結果となります。
"[C...] "のカテゴリのレコードのみが検索できています。
id category name price
1 [Cookie] ぺんぎんクッキー 380
2 [Chocolate] らくだチョコレート 240
3 [Cookie] かるがもサブレ 160
5 [Chocolate] ふくろう生チョコ 520
著者
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。
最終更新日: 2024-01-07
作成日: 2024-01-06
iPentec all rights reserverd.