[pgsql-jp: 26543] Re: % で始まる文字の LIKE 検索
Satoshi Nagayasu
snaga @ oak.forus.or.jp
2002年 6月 30日 (日) 00:08:37 JST
永安です。
Naofumi Kondoh wrote:
> ソフト工房の近藤です。
> > マニュアルにも、もうちょっと詳しく例示されていると嬉しいですね。
>
> PostgreSQL のマニュアルは実によくできていて、本件に
> ついても詳細に記述されています。
あ、マニュアルの「説明」に関して言えばそうなんですけど、
「例示」と言ったのは、マニュアルにある例に「エスケープ文字」の
マッチングのパターンが含まれているといいな、と思ったのです。
> アンダースコアやパーセント記号そのものをパターンマッチさせたい場合は
> patternの文字1字づつエスケープ文字で指定する必要があります。ディフォルトの
> エスケープ文字はバックスラッシュですが、ESCAPE句を使用することによって変更
> が可能です。エスケープ文字そのものとのマッチさせたい場合は、エスケープ文字
> を2つ記述して下さい。
「パーセント記号をマッチングさせるにはエスケープ文字が必要」
「エスケープ文字にマッチングさせるにはエスケープ文字をふたつ続ける」
ことは書いてありますが、「パーセント記号にマッチさせるエスケープ文字」が、
「エスケープ文字そのもの」なのか「エスケープされたエスケープ文字」なのかは
上の説明からは判然としません。
後者の「エスケープ文字を二つ続ける」という表現からすると、
前者の「エスケープ文字」というのは「エスケープ文字ひとつ」と
解釈される可能性もあります。
多分、初めて読んだらそう解釈する人が多いのではないかと思います。
でも実際には「エスケープされたエスケープ文字」が必要なわけですよね?
なので、
> '%abc' LIKE '\\%%' true
と一行書いてあるとハッピーなのかな、と。
--
NAGAYASU Satoshi <snaga @ oak.forus.or.jp>
pgsql-jp メーリングリストの案内