[pgsql-jp: 26537] Re: % で始まる文字の LIKE 検索

Satoshi Nagayasu snaga @ oak.forus.or.jp
2002年 6月 29日 (土) 18:09:00 JST


永安です。

Hajime Lucky Okada wrote:
> 岡田と申します。 お世話になっております。
> 
> そこで、、、「4.5.1. LIKE述語を使用したパターンマッチング」
> http://osb.sra.co.jp/PostgreSQL/Manual/PostgreSQL-7.1-ja/functions-matching.html
> に基づき、「アンダースコアやパーセント記号そのものをパターンマッチさせたい場合は
> patternの文字1字づつエスケープ文字で 指定する必要があります。」ということで、
> '%' 自身を表すため \ でエスケープさせ '\%'、不定文字列を表すため '%' を付加して
> 検索してみます。

「バックスラッシュをエスケープしたものでパーセントをエスケープする」ことが
必要のようです。


snaga=# select * from t1;
 c |    t
---+----------
 1 | まつたけ
 2 | %test
 3 | しいたけ
(3 rows)

snaga=# select * from t1 where t like '\\%%';
 c |   t
---+-------
 2 | %test
(1 row)

snaga=#


おそらく、これがお望みの結果だとは思うのですが、この挙動が正しいのかどうかは
よく分かりません。

マニュアルにも、もうちょっと詳しく例示されていると嬉しいですね。

-- 
NAGAYASU Satoshi <snaga @ oak.forus.or.jp>



pgsql-jp メーリングリストの案内