[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 メーリングリストの案内