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