[pgsql-jp: 25475] Re: 正規表現と前方一致検索

sugita @ sra.co.jp sugita @ sra.co.jp
2002年 3月 30日 (土) 17:23:12 JST


  杉田です。

From: Takeuchi Hiroshi <hiro @ mccj.com>
Subject: [pgsql-jp: 25474] 正規表現と前方一致検索
Date: Sat, 30 Mar 2002 16:40:57 +0900

;;; 環境:CobaltRaQ4
;;; DB:PostgreSQL7.0
;;; 
;;; 以前、PostgreSQL6.5を用いたCGIを作成し
;;; ていましたが、今回、サーバの移転に伴い
;;; 7.0でCGIを動かしたところ、以下のSQL文で
;;; 検索できないようになりました。
;;; 
;;; これは、t04に「ふりがな」が入っており、
;;; 前方一致検索で必要なデータを検索するこ
;;; とを目的にしています。
;;; -/---/---/---/---/---/-
;;; select t01, t03, t04 from hoge
;;; where t04 ~ '^[あ-お]';
;;; -/---/---/---/---/---/-
;;; 
;;; 7.0の場合は、記述が変わるのでしょうか?
;;; 過去レスやPostgresのWEBページなど見てみ
;;; ましたが、アルファベットの正規表現の記
;;; 述はありますが、日本語の場合の正規表現
;;; など見つからず、よわりました。

  以下のように試してみるとうまく動いていました。

./configure --prefix=/opt/pgsql/7.0.3 \
            --enable-multibyte=EUC_JP

sugita=# select version();
                                version                                 
------------------------------------------------------------------------
 PostgreSQL 7.0.3 on i386-unknown-freebsdelf4.5, compiled by gcc 2.95.3
(1 row)

sugita=# \d test 
        Table "test"
 Attribute | Type | Modifier 
-----------+------+----------
 d         | text | 

sugita=# select test.*; 
   d    
--------
 あああ
 あいう
 おおお
(3 rows)

sugita=# select * from test where d ~ '^[あ-お]';
   d    
--------
 あああ
 あいう
 おおお
(3 rows)

sugita=# select * from test where d ~ '^[あ]';
   d    
--------
 あああ
 あいう
(2 rows)

sugita=# 


Kenji Sugita
sugita @ sra.co.jp



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