[pgsql-jp: 33960] Re: 五十音順検索

icc10325 @ nifty.com icc10325 @ nifty.com
2004年 9月 1日 (水) 21:28:49 JST


お世話になります。 マメ太です

> さいとうと申します
> 
> 例えば、ア行の場合、
> select * from aaa
> where hurigana >= 'ァ' and hurigana < 'カ'
> 
> とか、どうでしょうか?
> ちょっと確認しましたが、一応、検索は出来そうです。
> 
> 文字コードの並び順は、Windowsなら、IMEパッドなどで確認できます。


> 北村です。
> 
> 
> 文字コード表(http://ash.jp/code/unitbl21.htm)を見ると、並び
> がハッキリしているので、「アイウエオァィゥェォ」=「ア行」で
> あるならば、
> SELECT * FROM aaa 
> WHERE substr(hurigana,1,1) between 'ァ' and 'オ';
> で OK です。
> カ行は、
> SELECT * FROM aaa 
> WHERE substr(hurigana,1,1) between 'カ' and 'ゴ';
> となります。
> ハ行(バ行、パ行、含む)
> SELECT * FROM aaa 
> WHERE substr(hurigana,1,1) between 'ハ' and 'ポ';
> ですね。

お〜、確かに文字コードの並びを見ると、基本的に上記のような感じのSQLで
なんとかいけそうですね!
「文字コード」「正規表現」という世界に疎いので、よく調べなかった私のミ
スですね・・・
さいとう様・北村様ありがとうございました!

> あとは、substr(hurigana,1,1) を関数インデックスにしてしまえ
> ば、良いのでは。
> create index aaa_fstchr on aaa ((substr(hurigana,1,1)));
> 括弧がひとつ余分なような気がしますが、関数インデックスの場合、
> 括弧が余計に1つ必要です(違ったらごめんなさい)。
> 
> でわでわ。

関数インデックスに関してはまだ私の知識レベル外なので今から調べますが、
要するに上述の手法を取った際に検索性能をアップするための手段・・・と認
識してよろしいでしょうか?
↑だから、調べろよ!って感じですね(笑)



その他の方法等もありましたら引き続きご教授頂けると幸いです。







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